Перенесення сайту з NGINX на сервер Caddy у ServBay
ServBay — це потужне локальне середовище для веброзробки, що інтегрує популярні вебсервери, зокрема Caddy, NGINX та Apache. Для цих серверів, особливо Caddy і NGINX, ServBay вже попередньо налаштовано з поширеними URL rewrite правилами, суттєво спрощуючи роботу розробника з конфігураціями.
Ця стаття — докладний гід з перенесення вашого існуючого сайту на NGINX до вбудованого в ServBay сервера Caddy. На прикладах популярних PHP-фреймворків (Laravel) і CMS (WordPress) показано повний процес перенесення.
Повна підтримка вебсерверів у ServBay
ServBay повністю підтримує Caddy, NGINX і Apache — ви можете гнучко перемикати типовий вебсервер залежно від потреб проєкту. Детальніше читайте в розділі Як перемикати типовий вебсервер.
Огляд
Перенесення сайту між вебсерверами передбачає перенесення конфігурацій та файлів сайту. У ServBay міграція на Caddy дуже проста. Для більшості PHP-фреймворків і CMS (Laravel, WordPress, Symfony, CodeIgniter, Drupal, Joomla тощо) ServBay підтримує роботу «з коробки» — вам не потрібно вручну писати чи редагувати Caddyfile. ServBay автоматично генерує Caddyfile на основі налаштувань сайту у графічному інтерфейсі.
Підготовка до перенесення
Перед будь-якою міграцією слід виконати важливі підготовчі кроки:
- Резервне копіювання файлів сайту: Створіть повну копію усіх файлів і тек вашого сайту.
- Резервне копіювання бази даних: Зробіть резервну копію використовуваної бази даних (наприклад, MySQL, PostgreSQL, MongoDB). В ServBay є вбудований інструмент для роботи з БД, також можна зробити ручне резервне копіювання.
- Встановлення ServBay: Переконайтесь, що ви успішно встановили і запустили ServBay на macOS.
- Розташування файлів: Помістіть файли вашого сайту до типової кореневої директорії ServBay
/Applications/ServBay/www
або до її підтеки. Наприклад, для проєктуmyproject
шлях буде/Applications/ServBay/www/myproject
.
Як працює Caddy у ServBay
Розуміння того, як ServBay управляє конфігурацією Caddy, є важливим для міграції. На відміну від ручного керування Caddyfile, у ServBay ви додаєте й налаштовуєте сайти через графічний інтерфейс (GUI). Коли ви додаєте новий сайт і обираєте Caddy як вебсервер, ServBay автоматично генерує та керує фрагментами Caddyfile на основі домену, кореневої директорії, версії PHP тощо. Ці фрагменти автоматично підключаються до основного Caddyfile, забезпечуючи роботу вашого сайту.
Таким чином, вам не потрібно вручну створювати чи редагувати .caddyfile
або інші конфігураційні файли Caddy — достатньо додати сайт через GUI.
Кроки перенесення
Перенесення сайту з NGINX до Caddy в ServBay дуже просте:
- Запустіть ServBay: Переконайтеся, що додаток ServBay уже працює.
- Скопіюйте файли сайту: Зробіть копію усіх файлів вашого сайту NGINX (код, зображення, CSS, JS тощо) до нової теки в корені сайтів ServBay, наприклад
/Applications/ServBay/www/your-site-name
. - Додайте сайт через GUI ServBay:
- Відкрийте програму ServBay.
- Перейдіть у розділ «Веб-сайти» (Websites).
- Натисніть «Додати сайт».
- Заповніть інформацію для сайту:
- Домен (Domain): введіть бажане локальне доменне ім'я, наприклад
your-site-name.servbay.demo
. - Корінь сайту (Website Root): вкажіть теку з файлами сайту з кроку 2, наприклад
/Applications/ServBay/www/your-site-name
. - Вебсервер (Web Server): оберіть
Caddy
. - Версія PHP (PHP Version): виберіть потрібну версію PHP.
- Домен (Domain): введіть бажане локальне доменне ім'я, наприклад
- Натисніть кнопку «Зберегти» або «Створити».
- Перевірте сайт: ServBay автоматично додасть новий домен до локального hosts-файлу та налаштує Caddy. Відкрийте браузер і введіть адресу сайту (наприклад,
http://your-site-name.servbay.demo
), щоб перевірити роботу. - Налаштуйте базу даних: Якщо сайт використовує базу даних, переконайтеся, що відповідний сервіс у ServBay (MySQL, PostgreSQL тощо) запущено та оновіть налаштування підключення у файлах конфігурації сайту (зазвичай база доступна через
127.0.0.1
чиlocalhost
, використовуйте відповідні логін і пароль).
Як Caddy працює у ServBay
Розуміння принципів роботи конфігурації Caddy у ServBay допомагає уникнути плутанини при міграції. На відміну від ручного редагування Caddyfile, у ServBay все це робиться за допомогою GUI: ви вказуєте необхідні параметри — і фрагмент Caddyfile генерується автоматично. Це означає, що жодного ручного редагування .caddyfile
чи схожих текстових файлів не потрібно.
Приклад: Міграція Laravel-сайту
Типовий NGINX-конфіг (для довідки)
Нижче — типовий конфігураційний файл NGINX для сайту на Laravel. Тут задаються корінь, файл входу (index.php
) і обробка PHP FastCGI:
nginx
server {
listen 80;
server_name laravel.servbay.demo; # Вказуємо тестовий домен ServBay
root /Applications/ServBay/www/laravel/public; # Вказуємо public-директорію Laravel
index index.php index.html index.htm;
location / {
# Пробуємо знайти файл або теку, якщо нема — переадресація на index.php
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
# Обробка PHP FastCGI
include fastcgi_params;
# Шлях до сокета PHP у ServBay за замовчуванням
fastcgi_pass unix:/Applications/ServBay/tmp/php-cgi.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~ /\.ht {
# Заборонити доступ до прихованих файлів
deny all;
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Відповідний Caddy-конфіг у ServBay (генерується автоматично, ручне редагування не потрібне)
Нічого не потрібно налаштовувати вручну у Caddyfile
У ServBay не потрібно створювати чи редагувати Caddyfile для роботи, описаної вище. GUI ServBay самостійно сформує потрібні налаштування для Caddy. Нижче — лише ілюстрація того, як схожа конфігурація реалізується автоматично для дружнього розуміння принципу роботи.
Ось як ServBay теоретично сформує мінімальний фрагмент Caddyfile для сайту на Laravel (у реальності він може бути більшим):
bash
# Ця конфігурація керується ServBay автоматично
laravel.servbay.demo {
# Вказуємо корінь сайту
root * /Applications/ServBay/www/laravel/public
# Обробка PHP FastCGI, вказуємо сокет ServBay PHP
php_fastcgi unix//Applications/ServBay/tmp/php-cgi.sock
# Вмикаємо сервіс файлів
file_server
# Визначаємо відповідність не-статичним файлам
@notStatic {
not {
file {
try_files {path} {path}/ /index.php?{query}
}
}
}
# Перенаправлення не-статичних файлів на index.php
rewrite @notStatic /index.php
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Практичні кроки для міграції Laravel:
- Скопіюйте файли Laravel-проєкту у
/Applications/ServBay/www/laravel
. - Переконайтеся, що саме тека
laravel/public
є точкою входу сайту. - Додайте новий сайт у GUI ServBay: домен
laravel.servbay.demo
, корінь/Applications/ServBay/www/laravel/public
, вебсервер —Caddy
. - Встановіть правильні параметри підключення до бази у файлі
.env
Laravel. - Завітайте на
http://laravel.servbay.demo
для перевірки роботи.
Приклад: Міграція сайту WordPress
Типовий NGINX-конфіг (для довідки)
Ось поширений приклад NGINX-конфігурації для сайту WordPress:
nginx
server {
listen 80;
server_name wordpress.servbay.demo; # Вказуємо тестовий домен ServBay
root /Applications/ServBay/www/wordpress; # Вказуємо директорію із файлами WordPress
index index.php index.html index.htm;
location / {
# Правила для постійних посилань WordPress
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
# Обробка PHP FastCGI
include fastcgi_params;
# Шлях до сокета PHP у ServBay за замовчуванням
fastcgi_pass unix:/Applications/ServBay/tmp/php-cgi.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~ /\.ht {
# Заборонити доступ до прихованих файлів
deny all;
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Відповідний Caddy-конфіг у ServBay (генерується автоматично, ручне редагування не потрібне)
Нічого не потрібно налаштовувати вручну у Caddyfile
Аналогічно для WordPress: GUI ServBay повністю автоматизує налаштування Caddy-конфігурації. Цей приклад лише для розуміння того, як забезпечується підтримка постійних посилань тощо.
Нижче теоретичний фрагмент Caddyfile, автоматично сформований ServBay для WordPress:
bash
# Ця конфігурація керується ServBay автоматично
wordpress.servbay.demo {
# Вказуємо корінь сайту
root * /Applications/ServBay/www/wordpress
# Обробка PHP FastCGI
php_fastcgi unix//Applications/ServBay/tmp/php-cgi.sock
# Вмикаємо сервіс файлів
file_server
# Визначаємо відповідність не-статичним файлам
@notStatic {
not {
file {
try_files {path} {path}/ /index.php?{query}
}
}
}
# Перенаправлення не-статичних файлів на index.php (щоб працювали постійні посилання)
rewrite @notStatic /index.php
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Практичні кроки для міграції WordPress:
- Скопіюйте всі файли WordPress у
/Applications/ServBay/www/wordpress
. - Додайте новий сайт у GUI ServBay: домен
wordpress.servbay.demo
, корінь/Applications/ServBay/www/wordpress
, вебсервер —Caddy
. - Встановіть правильні параметри БД у файлі
wp-config.php
. - Зайдіть на
http://wordpress.servbay.demo
. Якщо виникнуть проблеми з постійними посиланнями, зазвичай додаткової конфігурації не потрібно — ServBay автоматично обробляє rewrite-правила. Перевірте налаштування в розділі “Налаштування” -> “Постійні посилання” в адмін-панелі WordPress.
Важливі зауваги
- З'єднання з БД: Після перенесення обов'язково оновіть дані для підключення до БД у коді сайту так, щоб вони вказували на відповідний сервер БД у ServBay.
- Змінні оточення: Якщо ваша аплікація використовує певні змінні середовища, переконайтесь, що вони задані у середовищі ServBay (наприклад, через файл
.env
PHP чи налаштування самого ServBay). - Складні NGINX-конфіги: Наведені приклади розраховані на типові налаштування для Laravel і WordPress. Якщо у вас є складніші кастомні правила, нестандартні модулі чи специфічна конфігурація NGINX, автоматичні налаштування ServBay можуть їх не охоплювати повністю. У такому разі рекомендується вивчити офіційну документацію Caddy, скористатися опціональними «точками розширення» конфігурації у ServBay (якщо вони доступні), або спробувати відтворити необхідну логіку через розуміння принципу роботи автогенерації. Проте для більшості стандартних застосунків автоматична конфігурація ServBay буде достатньою.
- HTTPS/SSL: ServBay підтримує налаштування HTTPS для локальних сайтів: використовуйте ServBay User CA або ServBay Public CA для генерації й довіри локальних SSL-сертифікатів — ручної настройки TLS у Caddy не потрібно.
Висновок
Перенесення сайту з NGINX на Caddy у ServBay — процес максимально спрощений, у першу чергу завдяки автоматичному генеруванню конфігурації. Для популярних застосунків, як Laravel чи WordPress, все зводиться до копіювання файлів у потрібну теку й додавання сайту через GUI — ServBay сам обробить URL-rewrite, FastCGI для PHP та інші ключові моменти, надаючи вам змогу швидко запускати сайт під керуванням Caddy на вашому локальному комп'ютері.