Как перенести сайт с Apache на Caddy
ServBay предлагает Caddy, Nginx и Apache в качестве веб-серверов, позволяя пользователям выбирать наиболее подходящий вариант для проекта. Для большинства PHP-фреймворков и CMS-систем ServBay уже по умолчанию настраивает правила для URL Rewrite для Caddy и Nginx — в большинстве случаев дополнительная настройка не требуется.
Эта статья предназначена для того, чтобы помочь вам перенести сайт, который раньше работал с настройками Apache, в среду локальной разработки ServBay с использованием веб-сервера Caddy. В качестве примеров рассмотрим наиболее популярные проекты — Laravel и WordPress.
Информация о поддержке Apache в ServBay
ServBay полностью поддерживает Apache как веб-сервер. Если вы хотите изменить стандартный веб-сервер ServBay на Apache или узнать больше о том, как настроить сайты на Apache, ознакомьтесь с руководством: Как переключить стандартный веб-сервер на Apache. Эта статья посвящена переносу уже настроенного сайта под Apache в среду Caddy на ServBay.
Обзор
Миграция сайта с одного веб-сервера на другой связана с адаптацией его настроек и файловой структуры. ServBay позволяет использовать Caddy в качестве веб-сервера и поддерживает большинство PHP-фреймворков и CMS-систем "из коробки". Это значит, что ServBay автоматически выполняет необходимую настройку, включая Rewrite-правила. Поэтому для переноса сайта, настроенного под Apache, на Caddy в ServBay процесс обычно крайне прост: основной шаг — правильно "добавить сайт" в ServBay.
Подготовка к миграции
Перед началом любых миграционных работ обязательно выполните следующие действия:
- Резервное копирование файлов: Сделайте полную копию всех файлов вашего сайта, включая код, изображения, загруженные пользователем файлы и т.д.
- Резервное копирование базы данных: Экспортируйте и сохраните всю базу данных сайта. ServBay поддерживает различные базы данных, такие как MySQL, PostgreSQL, MongoDB и другие — воспользуйтесь подходящими инструментами для бэкапа.
- Проверьте установку ServBay: Убедитесь, что ServBay успешно установлен и запущен на вашем Mac (macOS).
- Проверьте, что Caddy включён: В приложении ServBay убедитесь, что пакет Caddy активирован.
Миграция сайта на Laravel с Apache на Caddy
Предположим, у вас есть сайт на Laravel, который раньше был настроен на Apache следующим образом:
Пример типовой конфигурации Apache (не в среде ServBay)
Пример настройки Apache VirtualHost для сайта на Laravel вне среды ServBay. Обратите внимание, что DocumentRoot
указывает на папку public
, а благодаря AllowOverride All
используются Rewrite-правила из файла .htaccess
.
<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>
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 Server): укажите
Caddy
. - Версия PHP (PHP Version): выберите версию PHP, соответствующую вашему проекту.
- Тип приложения (Application Type): выберите
Laravel
. Это важно, чтобы ServBay смог автоматически сгенерировать нужные настройки.
- Домен (Domain): введите желаемое имя сайта, например
- Нажмите "Сохранить" или "Добавить".
После выполнения этих шагов ServBay автоматически создаст соответствующую конфигурацию Caddy для сайта laravel.servbay.demo
, настроит нужное направление на папку public
, добавит Rewrite-правила и организует проксирование PHP-запросов. Теперь вы можете открыть в браузере http://laravel.servbay.demo
и протестировать работу вашего Laravel-сайта.
Пример гипотетической конфигурации Caddy (только для ознакомления, ServBay создаёт настройки автоматически)
Для понимания того, что именно сгенерирует ServBay, ниже приведён пример настройки Caddy, эквивалентной требованиям Laravel. Помните: создавать или изменять этот файл вручную не нужно.
laravel.servbay.demo {
# Установить корень сайта, указывающий на public
root * /Applications/ServBay/www/your-laravel-project/public
# Настроить обработку PHP через FastCGI
# ServBay сам автоматически проставляет корректный путь к socket-у 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
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Миграция сайта на WordPress с Apache на Caddy
Предположим, у вас сайт на WordPress, на Apache настроенный примерно так:
Пример типовой конфигурации Apache (не в среде ServBay)
Пример настройки Apache VirtualHost для сайта на WordPress вне среды ServBay. Обычно корнем сайта служит папка с установленным движком WordPress и используются правила Rewrite из .htaccess
— например, для реализации ЧПУ-ссылок.
<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>
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Запуск этого сайта на WordPress через ServBay (с использованием Caddy)
Точно так же, как и с Laravel, для запуска WordPress на ServBay через Caddy не требуется ручной настройки Caddy. ServBay сам распознает требования WordPress и генерирует нужную конфигурацию.
Последовательность действий:
- Скопируйте все файлы WordPress в отдельную подпапку в корне сайтов ServBay. Рекомендуемый путь:
/Applications/ServBay/www/your-wordpress-site
. Проверьте, чтобы в этой папке были файлыindex.php
, папкиwp-admin
,wp-includes
и другие. - Откройте приложение ServBay.
- Перейдите на страницу управления сайтами ("Websites").
- Нажмите кнопку "Добавить сайт".
- В открывшемся окне:
- Домен (Domain): введите доменное имя, например
wordpress.servbay.demo
. - Корневая папка сайта (Document Root): выберите корневую папку вашего проекта, например
/Applications/ServBay/www/your-wordpress-site
. - Веб-сервер (Web Server): выберите
Caddy
. - Версия PHP (PHP Version): выберите необходимую версию PHP.
- Тип приложения (Application Type): выберите
WordPress
.
- Домен (Domain): введите доменное имя, например
- Нажмите "Сохранить" или "Добавить".
ServBay автоматически создаст соответствующую конфигурацию Caddy для wordpress.servbay.demo
, настроит корневую папку сайта, обработает правила Rewrite (в том числе для ЧПУ-ссылок) и проксирование PHP. После этого сайт будет доступен по адресу http://wordpress.servbay.demo
— и поддержка постоянных ссылок (Permalinks) тоже будет работать корректно.
Пример гипотетической конфигурации Caddy (только для ознакомления, ServBay создаёт настройки автоматически)
Ниже приведён пример конфигурации, эквивалентной требованиям WordPress. Вам не нужно создавать или менять этот файл вручную.
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: поддержка ЧПУ-ссылок
# Если не найден файл или папка — редирект на index.php
@notStatic {
not {
file {
try_files {path} {path}/ /index.php?{query}
}
}
}
rewrite @notStatic /index.php
}
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 в синтаксис Caddyfile. Достаточно корректно добавить новый сайт через приложение ServBay: указать домен, корневую папку, выбрать Caddy как веб-сервер и указать нужный тип приложения (Laravel или WordPress). ServBay всё остальное сделает за вас, включая сложные Rewrite-правила.
Автоматизация такого рода значительно упрощает и сам процесс миграции, и настройку локальной среды — позволяя сконцентрироваться на процессе разработки, а не на технических деталях конфигурации сервера.