Як перенести сайт з Apache на Caddy
ServBay надає Web-сервери Caddy, Nginx і Apache, дозволяючи користувачам обирати оптимальний варіант під свої проекти. Для більшості PHP-фреймворків і CMS-систем ServBay вже має готові URL Rewrite-правила для Caddy та Nginx, тож зазвичай додаткові налаштування не потрібні.
У цій статті ви дізнаєтесь, як перенести сайт з конфігурацією під Apache до середовища локальної розробки ServBay на сервері Caddy. Для пояснення будуть використані приклади популярних проектів: Laravel та WordPress.
Щодо підтримки Apache у ServBay
ServBay повністю підтримує Apache як Web-сервер. Якщо ви хочете змінити сервер за замовчуванням на Apache або дізнатись, як налаштувати сайт на Apache у ServBay, ознайомтеся з документацією: Як змінити Web-сервер за замовчуванням на Apache. Ця стаття зосереджена на перенесенні існуючих сайтів під Apache у середовище Caddy від ServBay.
Огляд
Міграція сайту між Web-серверами завжди вимагає адаптації конфігурацій та файлів. ServBay дозволяє використовувати Caddy як Web-сервер та надає "з коробки" підтримку основних PHP-фреймворків і CMS. Це означає, що необхідні налаштування, зокрема Rewrite-правила, сервіс генерує самостійно. Тому перенесення сайту з конфігурацією Apache до Caddy у середовищі ServBay — справа проста: головне — правильно "додати сайт" у ServBay.
Підготовка до міграції
Перед початком будь-яких дій з перенесення обов'язково виконайте такі підготовчі роботи:
- Резервне копіювання файлів: Створіть повний бекап усіх файлів сайту — коду, зображень, завантажень тощо.
- Резервне копіювання БД: Експортуйте й збережіть копію бази даних, що використовується сайтом. ServBay підтримує різні БД, як-от MySQL, PostgreSQL, MongoDB — виберіть відповідний інструмент для бекапу.
- Перевірте встановлення ServBay: Переконайтеся, що ви успішно інсталювали та запустили ServBay на macOS.
- Перевірте, чи активовано Caddy: У ServBay впевніться, що Caddy увімкнено.
Перенесення сайту Laravel на Caddy
Припустимо, у вас є сайт на Laravel із такою конфігурацією Apache:
Типова конфігурація Apache (не ServBay)
Нижче — приклад налаштування Apache VirtualHost для сайту на Laravel у стандартному середовищі. Зверніть увагу, що DocumentRoot
вказує на каталог public
, а AllowOverride All
дозволяє Rewrite-правила з .htaccess
.
apache
<VirtualHost *:80>
ServerName laravel.demo
DocumentRoot /path/to/your/laravel/public
<Directory /path/to/your/laravel/public>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
# Зазвичай також налаштовується обробка PHP, наприклад, через FPM або mod_php
# FilesMatch \.php$>
# SetHandler "proxy:unix:/path/to/php-fpm.sock|fcgi://localhost"
# </FilesMatch>
</VirtualHost>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Запуск цього сайту Laravel у ServBay (через Caddy)
У ServBay не потрібно вручну переписувати чи конвертувати цю конфігурацію з Apache для Caddy. Суть ServBay — максимально спростити конфігурацію локального середовища. Для таких популярних фреймворків, як Laravel, ServBay самостійно згенерує потрібну конфігурацію для Caddy під час додавання сайту: це охоплює і public
-каталог, і Rewrite-правила.
Покроковий порядок дій:
- Скопіюйте каталог вашого Laravel-проекту як підкаталог у корені сайтів ServBay (рекомендується:
/Applications/ServBay/www/your-laravel-project
). Перевірте, щоб у цьому шляху була папкаpublic
. - Запустіть додаток ServBay.
- Відкрийте розділ "Websites" (Сайти) в інтерфейсі ServBay.
- Натисніть "Додати сайт".
- У вікні налаштувань:
- Домен (Domain): Введіть бажаний домен для вашого сайту, наприклад,
laravel.servbay.demo
. ServBay автоматично додасть його у локальний hosts-файл. - Коренева папка сайту (Document Root): Виберіть каталог
public
вашого проекту Laravel, наприклад,/Applications/ServBay/www/your-laravel-project/public
. - Web-сервер (Web Server): Виберіть
Caddy
. - Версія PHP (PHP Version): Вкажіть необхідну для вашого проекту версію PHP.
- Тип застосунку (Application Type): Оберіть
Laravel
— це ключ до автоматичної конфігурації ServBay.
- Домен (Domain): Введіть бажаний домен для вашого сайту, наприклад,
- Натисніть "Зберегти" чи "Додати".
Після цього ServBay автоматично згенерує для сайту laravel.servbay.demo
конфігурацію Caddy, яка враховує і public
-каталог, і правильні Rewrite-налаштування, і переспрямування PHP-запитів. Тепер ви можете відкрити http://laravel.servbay.demo
у браузері та працювати зі своїм проектом.
Теоретичний приклад Caddy-конфігурації (для ознайомлення, ServBay генерує автоматично)
Щоб зрозуміти, що саме створює ServBay автоматично, нижче наведений теоретичний еквівалент конфігурації Caddy для Laravel. Вам не потрібно створювати або вручну редагувати цей файл.
bash
laravel.servbay.demo {
# Встановлення кореня сайту — каталог public
root * /Applications/ServBay/www/your-laravel-project/public
# Налаштування PHP FastCGI-обробки
# ServBay автоматично вкаже правильний шлях до сокета залежно від PHP-версії
php_fastcgi unix//Applications/ServBay/tmp/php-cgi.sock
# Увімкнення файлового сервісу для статичних файлів
file_server
# Основне Rewrite-правило для Laravel: якщо не існує файлу чи каталогу — все на index.php
@notStatic {
not {
file {
try_files {path} {path}/ /index.php?{query}
}
}
}
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 на Caddy
Припустимо, у вас є сайт WordPress із такою конфігурацією Apache:
Типова конфігурація Apache (не ServBay)
Приклад налаштування Apache VirtualHost для сайту на WordPress у звичайній інфраструктурі. WordPress зазвичай використовує кореневий каталог як корінь сайту та покладається на .htaccess
для Rewrite-правил (перmalink-структура).
apache
<VirtualHost *:80>
ServerName wordpress.demo
DocumentRoot /path/to/your/wordpress
<Directory /path/to/your/wordpress>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
# Зазвичай також налаштовується обробка PHP
# FilesMatch \.php$>
# SetHandler "proxy:unix:/path/to/php-fpm.sock|fcgi://localhost"
# </FilesMatch>
</VirtualHost>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Запуск цього сайту WordPress у ServBay (через Caddy)
Як і з Laravel, для роботи WordPress з Caddy у ServBay не потрібно переписувати Caddy-конфігурацію вручну. ServBay розпізнає WordPress та створить відповідну конфігурацію автоматично.
Покроковий порядок дій:
- Скопіюйте папку WordPress (з файлами
index.php
, каталогамиwp-admin
,wp-includes
тощо) у підкаталог кореня сайтів ServBay, наприклад,/Applications/ServBay/www/your-wordpress-site
. - Запустіть додаток ServBay.
- Відкрийте розділ "Websites" в інтерфейсі ServBay.
- Натисніть "Додати сайт".
- У вікні налаштувань:
- Домен (Domain): Введіть бажаний домен, наприклад,
wordpress.servbay.demo
. - Кореневий каталог (Document Root): Оберіть кореневу папку WordPress, наприклад,
/Applications/ServBay/www/your-wordpress-site
. - Web-сервер (Web Server): Виберіть
Caddy
. - Версія PHP (PHP Version): Вкажіть потрібну для проекту версію PHP.
- Тип застосунку (Application Type): Оберіть
WordPress
.
- Домен (Domain): Введіть бажаний домен, наприклад,
- Натисніть "Зберегти" чи "Додати".
ServBay автоматично створить усі потрібні налаштування для сайту wordpress.servbay.demo
: підготує кореневу папку, обробку посилань-перmalink-структури та передачу PHP-запитів. Після цього ви зможете відкрити http://wordpress.servbay.demo
у браузері, і всі функції сайту та permalink працюватимуть коректно.
Теоретичний приклад Caddy-конфігурації (для ознайомлення, ServBay генерує автоматично)
Нижче — теоретичний приклад Caddy-конфігурації для WordPress. Вам не потрібно створювати чи модифікувати цей файл вручну.
bash
wordpress.servbay.demo {
# Встановлення кореня сайту
root * /Applications/ServBay/www/your-wordpress-site
# Налаштування PHP FastCGI-обробки
php_fastcgi unix//Applications/ServBay/tmp/php-cgi.sock
# Увімкнення файлового сервісу
file_server
# Головне Rewrite-правило для WordPress: для permalink-структури
# Якщо не існує файлу чи каталогу — все на index.php
@notStatic {
not {
file {
try_files {path} {path}/ /index.php?{query}
}
}
}
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 чи WordPress з Apache до Caddy у ServBay можна швидко й легко. Завдяки вбудованій підтримці основних додатків вам не потрібно вручну конвертувати налаштування .htaccess
або VirtualHost з Apache у Caddyfile. Просто додайте ваш сайт у розділі "Websites" додатку ServBay, вкажіть домен, кореневий каталог сайту, оберіть Caddy як Web-сервер та відповідний тип додатку (Laravel або WordPress) — і ServBay виконає всю необхідну конфігурацію, зокрема й складні Rewrite-правила.
Ця автоматизація спрощує міграцію та налаштування середовища для локальної розробки, дозволяючи сконцентруватися на написанні коду, а не на налаштуванні сервера.