Додавання сайту з кастомною конфігурацією
ServBay надає розширені можливості додавання сайтів. Окрім стандартного режиму з автоматичним керуванням налаштуваннями сервера, доступний і режим "Кастомної конфігурації". Цей режим дозволяє розробникам напряму писати й керувати файлами конфігурації веб-сервера (Nginx, Caddy, Apache) для кожного сайту, що забезпечує максимальну гнучкість і контроль. Підходить для випадків, коли потрібне точне налаштування, нестандартні опції чи специфічний функціонал.
Навіщо потрібна кастомна конфігурація
Вибираючи кастомну конфігурацію, ви отримуєте:
- Повний контроль: Можливість вручну редагувати фрагменти конфігів сервера для цього сайту (наприклад, блок
server
у Nginx,VirtualHost
в Apache чи визначення сайту у Caddy). - Розширені функції: Доступність налаштувань, які складно або неможливо реалізувати у стандартному режимі, наприклад, складні правила rewrite, особливі проксі, кастомний формат логів, нестандартні заголовки безпеки тощо.
- Специфічні випадки: Ідеально, якщо потрібно симулювати певну продакшн-конфігурацію, інтегрувати нестандартні модулі чи мати розширені можливості для відлагодження.
Але майте на увазі: ви самі відповідаєте за коректність і безпеку таких налаштувань, а також за керування 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 буде наданий базовий блок server
.
Структура шаблону та основні директиви:
nginx
# Прослуховування порту та протоколу
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_log /Applications/ServBay/logs/nginx/myproject.servbay.demo-access.log;
# error_log /Applications/ServBay/logs/nginx/myproject.servbay.demo-error.log;
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
26
27
28
29
30
31
32
33
34
35
36
37
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 ви отримаєте базовий шаблон у форматі Caddyfile.
Структура шаблону та основні директиви:
nginx
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 тощо
# ...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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>
.
Структура шаблону та основні директиви:
apache
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
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
26
27
28
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 сертифікати автоматично (не створює CA для ServBay чи не використовує ACME/Let's Encrypt).
- Отримання та генерація сертифікатів — повністю під відповідальністю користувача. Помістіть файли сертифікатів у доступне для сервера місце.
- Сертифікати можна згенерувати вручну з OpenSSL або скористатися CA, наданими самим ServBay (User CA чи Public CA) для генерації локальних dev-сертифікатів.
- У кастомних налаштуваннях Nginx/Caddy/Apache ви зобов’язані явно прописати шляхи до сертифікату і ключа відповідною директивою:
ssl_certificate
/ssl_certificate_key
(Nginx),tls
(Caddy) абоSSLCertificateFile
/SSLCertificateKeyFile
(Apache). - Якщо вказати SSL-директиви, але відповідних файлів не існує чи шлях до них містить помилку — веб-сервер не запуститься, а сайт буде недоступний. У ServBay чи серверних логах з’являться повідомлення про помилку.
Щоб дізнатися більше — зверніться до документації ServBay з керування SSL-сертифікатами.
Прив’язка до веб-сервера
DANGER
Ключовий аспект: після створення й збереження кастомної конфігурації для певного сайту, цей сайт жорстко прив'язується до вибраного веб-сервера (наприклад, Nginx).
- Тобто, сайт працюватиме лише тоді, коли у ServBay в активному статусі саме той серверний пакет — наприклад, Nginx.
- Якщо у розділі
Сервіси
→Сервер за замовчуванням
ви перемкнетеся на Apache чи Caddy, то кастомно налаштований під Nginx сайт не завантажиться, бо його конфіг не буде підхоплено. - І навпаки: сайти на кастомних конфігах Caddy чи Apache працюють лише при активності відповідних серверних пакетів.
Збереження та застосування змін
Після завершення редагування натисніть кнопку Save
внизу справа. ServBay збереже ваші кастомні налаштування й спробує перезавантажити відповідний веб-сервер для активації змін. Якщо синтаксис конфігу невірний — збереження чи перезапуск не відбудуться. Перевіряйте повідомлення у ServBay чи логи серверів (зазвичай /Applications/ServBay/logs/
— відповідна підпапка) для пошуку й виправлення помилок.
Підсумок
Додавання сайтів через кастомну конфігурацію надає користувачам ServBay найвищий рівень свободи — ви точно керуєте поведінкою свого середовища. Водночас, такий підхід вимагає розуміння принципів роботи веб-серверів, грамотної конфігурації, відповідальності за безпеку та керування SSL-сертифікатами. Щоб цей функціонал запрацював ефективно, важливо чітко розуміти структуру шаблонів, SSL-особливості та механіку прив’язки сервера.