Добавление сайта с помощью пользовательской конфигурации
ServBay предоставляет гибкие способы добавления сайтов. Помимо стандартного режима, при котором конфигурации управляются автоматически, поддерживается также режим «Пользовательская конфигурация». Этот режим позволяет разработчикам напрямую создавать и редактировать файлы конфигураций веб-сервера (Nginx, Caddy, Apache) для определённого сайта, обеспечивая максимальную гибкость и контроль. Это особенно актуально для случаев, требующих тонкой настройки, нестандартных решений или расширенных возможностей.
Значение пользовательской конфигурации
Выбор пользовательской конфигурации означает:
- Полный контроль: Вы можете напрямую редактировать конфигурационный фрагмент сервера для данного сайта (например, блок
server
в Nginx, блокVirtualHost
в Apache или определение сайта в Caddy). - Расширенные возможности: Можно реализовать функции, которые сложно настроить в стандартном режиме, например, сложные правила перенаправления, особые настройки прокси, кастомные форматы логов, уникальные заголовки безопасности и другое.
- Особые случаи: Подходит для ситуаций, когда необходимо моделировать настройки боевого окружения, интегрировать специфические модули или производить глубокую отладку.
Однако при этом вы несёте ответственность за корректность и безопасность конфигурации, включая управление SSL-сертификатами.
Шаги по добавлению сайта с пользовательской конфигурацией
- Перейдите к разделу «Сайты»: В левом меню ServBay нажмите на пункт
Websites
. - Добавьте новый сайт: Нажмите на кнопку
+
(плюс) в верхней части списка сайтов. - Заполните основную информацию:
- Name: Укажите наглядное имя для вашего сайта (например:
My Custom Project
). - Domain: Введите домен, который вы хотите использовать для локального доступа (например:
myproject.servbay.demo
).
- Name: Укажите наглядное имя для вашего сайта (например:
- Выберите веб-сервер: В выпадающем списке
Web Server
выберите сервер, который вы планируете использовать (Nginx, Caddy или Apache). Этот выбор критически важен, так как определяет тип предоставляемого шаблона конфигурации и выбор серверного ПО для обслуживания сайта. - Включите пользовательскую конфигурацию: Отметьте чекбокс
Custom Configuration
. - Просмотрите и отредактируйте шаблон: После установки флажка в текстовое поле автоматически подставится базовый шаблон конфигурации согласно выбранному серверу. Это отправная точка, которую вы можете (и зачастую должны) доработать под свои нужды.
Понимание и изменение шаблона конфигурации
В зависимости от выбранного вами веб-сервера (Nginx, Caddy или Apache), ServBay предложит различные шаблоны конфигураций. Их необходимо адаптировать под нужды вашего проекта.
1. Пользовательская конфигурация Nginx
Если вы выбрали Nginx, ServBay предоставит базовый шаблон с блоком server
.
Структура шаблона и ключевые директивы:
# Прослушиваем порт и протокол
listen 443 ssl; # HTTPS
# Привязка к доменному имени
server_name myproject.servbay.demo;
# Корневая директория сайта (убедитесь, что директория существует)
root /Applications/ServBay/www/myproject.servbay.demo;
# Файлы индексной страницы по умолчанию
index index.php index.html index.htm;
# SSL/TLS протоколы и шифры (пример)
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384';
ssl_prefer_server_ciphers on;
ssl_session_timeout 1d;
ssl_session_cache shared:ServBay:10m;
ssl_session_tickets off;
# Пути к SSL-сертификатам (если используется HTTPS, необходимо указать вручную)
# 【ВАЖНО】Убедитесь, что файлы сертификата существуют, а пути корректны
ssl_certificate /Applications/ServBay/ssl/private/tls-certs/myproject.servbay.demo/myproject.servbay.demo.crt;
ssl_certificate_key /Applications/ServBay/ssl/private/tls-certs/myproject.servbay.demo/myproject.servbay.demo.key;
# Обработка PHP-запросов (пример для PHP 8.3, скорректируйте при необходимости)
set $php_version '8.3';
include enable-php-fpm-pathinfo.conf;
# Дополнительные настройки, например, блоки location и правила для rewrite
location / {
try_files $uri $uri/ /index.php?$query_string;
}
# Пути к access и error логам (опционально)
# access_log /Applications/ServBay/logs/nginx/myproject.servbay.demo-access.log;
# error_log /Applications/ServBay/logs/nginx/myproject.servbay.demo-error.log;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
Ключевые моменты редактирования:
- Проверьте, что
server_name
совпадает с указанным доменом. - Установите корректную директорию в
root
— путь до файлов вашего проекта. - Для HTTPS — раскомментируйте или добавьте
listen 443 ssl;
и обязательно пропишите корректные пути кssl_certificate
иssl_certificate_key
. - При необходимости добавьте другие блоки location, правила rewrite, прокси и так далее.
2. Пользовательская конфигурация Caddy
Для выбора Caddy ServBay предоставит базовый шаблон Caddyfile.
Структура шаблона и ключевые директивы:
encode zstd gzip
import set-log myproject.servbay.demo # имя файла лога
import canonical-path
# Корневая директория сайта (убедитесь, что директория существует)
root * /Applications/ServBay/www/myproject.servbay.demo
# Обработка PHP-запросов
route {
import php-rewrite-default 8.3 # версия PHP 8.3
}
# Настройки TLS/SSL
# Укажите пути к сертификатам
# tls /Applications/ServBay/ssl/private/tls-certs/myproject.servbay.demo/myproject.servbay.demo.crt /Applications/ServBay/ssl/private/tls-certs/myproject.servbay.demo/myproject.servbay.demo.key
# Включение статического файлового сервера
file_server
# Другие директивы: reverse_proxy, rewrite, header и др.
# ...
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Ключевые моменты редактирования:
- Убедитесь, что используется правильное доменное имя верхнего уровня —
myproject.servbay.demo
. - Пропишите правильный путь в директиве
root
к папке проекта. - SSL/TLS: Caddy по умолчанию пытается автоматически получать и управлять сертификатами для домена через HTTPS. Для доменов типа
.servbay.demo
(локальная разработка) это обычно невозможно. Если требуется HTTPS, настоятельно рекомендуется вручную указать путь к своему сертификату и закрытому ключу через директивуtls
. Убедитесь, что указанные файлы существуют, а путь к ним корректный. - По необходимости добавляйте другие директивы Caddy.
3. Пользовательская конфигурация Apache
При выборе Apache будет предложен шаблон с блоком <VirtualHost>
.
Структура шаблона и ключевые директивы:
ServerName myproject.servbay.demo
DocumentRoot "/Applications/ServBay/www/myproject.servbay.demo"
# Включение SSL-движка
SSLEngine on
# Пути к SSL-сертификату
# 【ВАЖНО】Убедитесь, что файлы сертификата существуют, а пути корректны
SSLCertificateFile "/Applications/ServBay/ssl/private/tls-certs/myproject.servbay.demo/myproject.servbay.demo.crt"
SSLCertificateKeyFile "/Applications/ServBay/ssl/private/tls-certs/myproject.servbay.demo/myproject.servbay.demo.key"
# Права доступа к директории
<Directory "/Applications/ServBay/www/myproject.servbay.demo">
DirectoryIndex index.php index.html index.htm
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
# Настройки PHP-FPM (PHP 8.3)
Define PHP_VERSION 8.3
<FilesMatch \.php$>
SetHandler "proxy:unix:/Applications/ServBay/tmp/php-cgi-${PHP_VERSION}.sock|fcgi://localhost"
</FilesMatch>
# Файлы логов ошибок и доступа (опционально)
ErrorLog "/Applications/ServBay/logs/apache/myproject.servbay.demo-ssl-error_log"
CustomLog "/Applications/ServBay/logs/apache/myproject.servbay.demo-ssl-access_log" common
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Ключевые моменты редактирования:
- Убедитесь, что в директиве
ServerName
указан ваш домен. - Установите корректный путь в
DocumentRoot
к папке с файлами сайта. - Задайте права доступа и опции в блоке
<Directory>
. - По необходимости добавляйте другие директивы Apache, например,
RewriteEngine
,ProxyPass
и др.
Управление SSL-сертификатами【ВАЖНО】
Когда вы используете пользовательскую конфигурацию, ServBay не генерирует SSL-сертификаты автоматически (например, не создаёт сертификаты ServBay CA или не получает Let’s Encrypt через ACME).
- Вы должны самостоятельно получить или сгенерировать SSL-сертификат и поместить его в доступное для сервера место.
- Можно вручную создать самоподписанный сертификат через OpenSSL или воспользоваться собственным CA (ServBay User CA либо ServBay Public CA), чтобы выпустить сертификаты для локальной разработки.
- В кастомных конфигурациях Nginx, Caddy или Apache обязательно указывайте нужные директивы:
ssl_certificate
/ssl_certificate_key
(Nginx),tls
(Caddy) илиSSLCertificateFile
/SSLCertificateKeyFile
(Apache) с указанием пути к нужным файлам сертификата и ключа. - Если вы прописали SSL-директивы и указанные файлы отсутствуют либо путь к ним неверен, то сервер не запустится или не применит конфигурацию сайта. В итоге сайт будет недоступен, возможны ошибки в интерфейсе ServBay или логах сервера.
За подробностями по созданию и управлению локальными сертификатами обратитесь к документации ServBay по управлению SSL-сертификатами.
Привязка к веб-серверу
DANGER
Ключевой момент: при выборе серверного ПО (например, Nginx) и сохранении пользовательской конфигурации, сайт будет привязан именно к этому серверу.
- Это значит, что сайт будет доступен только когда в ServBay активен соответствующий серверный пакет — например, Nginx.
- Если вы смените веб-сервер по умолчанию на Apache или Caddy через раздел
Services
—Default Web Server
, сайт с пользовательской конфигурацией для Nginx работать не будет, так как его конфиг не будет загружен. - Аналогично, сайты с пользовательскими конфигурациями для Caddy или Apache работают лишь когда выбран соответствующий серверный пакет.
Сохранение и применение изменений
После внесения всех нужных изменений нажмите кнопку Save
в нижнем правом углу. ServBay сохранит пользовательскую настройку и попытается перезапустить соответствующий веб-сервер для применения изменений. При наличии ошибок синтаксиса сохранить настройки или перезагрузить сервер может не получиться. Смотрите уведомления ServBay или логи ошибок сервера (обычно расположены в подпапках /Applications/ServBay/logs/
) для диагностики проблем.
Итоги
Добавление сайтов через пользовательскую конфигурацию открывает для пользователей ServBay непревзойдённую гибкость и контроль — вы можете детально управлять поведением сервера для каждого проекта. Вместе с этим разработчику требуется разбираться в настройках веб-сервера и брать на себя ответственность за корректность, безопасность и управление SSL-сертификатами. Успешная работа с этим функционалом требует понимания структуры шаблонов, особенностей SSL и принципа привязки к серверу.