Детальний огляд структури каталогів ServBay
Огляд
ServBay — це локальне веб-розробницьке середовище з підтримкою macOS і Windows, структура каталогів якого розроблена просто й організовано. Якщо ви знайомі з Linux/Unix, зауважите схожість організації файлів ServBay зі стандартною структурою файлової системи, що спрощує пошук та керування файлами для розробників.
Місце встановлення ServBay
Стандартні шляхи встановлення ServBay на різних платформах:
- macOS:
/Applications/ServBay - Windows:
C:\ServBay
Розуміння структури каталогів ServBay необхідне для ефективної локальної розробки, керування налаштуваннями, налагодження та бекапу даних. Далі розглянемо основні каталоги ServBay та їх призначення.
Прикладова структура встановлення ServBay:
ServBay
|____backup # Каталог резервних копій
| |____config # Бекап конфігурацій
| |____databases # Бекап баз даних
| |____ssl # Бекап SSL-сертифікатів
| |____websites # Бекап файлів сайтів
|____bin # Каталог для виконуваних файлів користувача (символічне посилання на package/bin)
|____data # Внутрішні дані ServBay
| |____servbay # Ядрові налаштування та дані ServBay
|____db # Каталог для файлів баз даних
| |____mariadb # Дані MariaDB
| |____mongodb # Дані MongoDB
| |____mysql # Дані MySQL
| |____postgresql # Дані PostgreSQL
| |____redis # Дані Redis
|____etc # Каталог конфігураційних файлів (символічне посилання на package/etc)
|____logs # Каталог журналів (символічне посилання на package/var/log)
|____package # Каталог встановлених пакетів
| |____bin # Виконувані файли пакетів
| |____common # Спільні бібліотеки й dev-бібліотеки
| | |____imap-uw
| | |____include # Файли заголовків (ServBay Development Library)
| | |____lib # Shared та static бібліотеки (ServBay Development Library)
| | |____libexec
| | |____openssl
| | |____share
| |____etc # Справжнє місце збереження конфігурацій пакетів
| | |____caddy
| | |____dnsmasq
| | |____mariadb
| | |____mongodb
| | |____mysql
| | |____nginx
| | |____openldap
| | |____php
| | |____postgresql
| | |____redis
| | |____... (інші пакети, такі як Python, Go, Java, Ruby, Rust тощо)
| |____<package_name> # Основний каталог кожного пакета
| | |____<major_version> # Каталог головної версії
| | | |____<full_version> # Каталог повної версії (містить сам пакет)
| | | |____current # Символічне посилання на актуальну версію
| | |____...
| |____sbin # Виконувані системні файли пакетів
| |____var # Змінні дані пакетів (наприклад, реальні журнали)
| | |____log # Реальне місце для журналів
| | |____run # Файли runtime (наприклад, .pid)
|____sbin # Каталог системних виконуваних файлів (символічне посилання на package/sbin)
|____script # Внутрішні управляючі скрипти ServBay
|____ssl # Каталог SSL-сертифікатів
| |____acme # SSL-сертифікати, отримані через ACME
| |____caddy # Автогенеровані сертифікати Caddy
| |____import # Сторонні SSL-сертифікати, додані користувачем
| |____private # ServBay User CA
| |____public # ServBay Public CA
|____tmp # Каталог тимчасових файлів і сокетів
|____www # Корінь сайтів
| |____servbay # Каталог для прикладу сайту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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
Далі докладніше розглянемо призначення кожного каталогу.
Основний каталог ServBay
Фізичне розташування головного каталогу — /Applications/ServBay. Тут містяться всі пов'язані із ServBay пакети, налаштування, дані, журнали тощо.
Для безпеки локального середовища та даних рекомендується регулярно робити резервні копії головного каталогу, наприклад, через Time Machine або інші засоби бекапу.
Корінь сайтів (www)
Головний каталог для сайтів знаходиться у /Applications/ServBay/www. Сюди слід поміщати всі файли ваших локальних проектів.
Рекомендується для кожного окремого проєкту або віртуального сайту створювати окрему папку в цьому каталозі, для зручності керування.
Наприклад, якщо ви створили сайти web.servbay.demo, api.servbay.demo та new.servbay.local, їх структура рекомендується така:
/Applications/ServBay/www
|____servbay.demo # Сайти з доменом *.servbay.demo
| |____web # Файли сайту web.servbay.demo
| |____api # Файли сайту api.servbay.demo
|____servbay.local # Сайти з доменом *.servbay.local
| |____new # Файли сайту new.servbay.local
|____myproject # Інші незалежні проєкти, напр., myproject.local1
2
3
4
5
6
7
2
3
4
5
6
7
Це дозволяє відрізняти проєкти та домени й полегшує керування.
Каталог налаштувань (etc)
Каталог /Applications/ServBay/etc — це символічне посилання на /Applications/ServBay/package/etc. Тут містяться головні конфігуаційні файли всіх пакетів ServBay (PHP, MariaDB, Nginx, Caddy тощо).
У повсякденній роботі ви можете змінювати налаштування через шлях /Applications/ServBay/etc. Після зміни більшості файлiв потрібно перезапустити відповідний сервіс для застосування налаштувань.
Структура розміщення конфігурацій для основних пакетів:
PHP (etc/php)
Конфігураційні файли PHP організовані у двох рівнях — за основними версіями. Наприклад, у etc/php ви знайдете каталоги 5.6, 7.4, 8.3 тощо, що відповідають різним major-версіям PHP. Типова структура:
php
|____5.6 # Конфігурація для PHP 5.6
| |____conf.d # Каталог конфігурацій розширень
| |____php.ini # Основний конфігураційний файл PHP
|____7.4 # Конфігурація для PHP 7.4
| |____conf.d # Каталог конфігурацій розширень
| |____php-fpm.d # Каталог pool-конфігурацій PHP-FPM
| |____php-fpm.conf # Основний файл PHP-FPM
| |____php.ini # Основний конфігураційний файл PHP
|____8.3 # Конфігурація для PHP 8.3
| |____conf.d
| |____php-fpm.d
| |____php-fpm.conf
| |____php.ini
|____... (інші версії PHP)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
У каталозі кожної версії містяться php.ini (основна конфігурація PHP), php-fpm.conf (головна для PHP-FPM, якщо FPM підтримується), pear.conf та ін. Після внесення змін необхідно перезапустити відповідний PHP-FPM-сервіс через панель керування або команду servbayctl.
Каталог conf.d — це конфігурації розширень PHP, зокрема xdebug.ini, opcache.ini, redis.ini тощо. редагування файлів у цьому каталозі впливає на налаштування розширень; після змін також слід перезапустити PHP-FPM.
Зверніть увагу: У ServBay всі minor-версії одного major-версії PHP мають спільну конфігурацію. Наприклад, PHP 8.3.3 та 8.3.5 використовують ті самі файли з каталогу etc/php/8.3.
MariaDB / MySQL / PostgreSQL (etc/mariadb, etc/mysql, etc/postgresql)
Конфігурації для цих СУБД також організовані за версіями, наприклад, etc/mariadb/11.2. У цих каталогах ви знайдете основний конфігуаційний файл (my.cnf для MariaDB/MySQL, postgresql.conf для PostgreSQL). Після зміни файлів потрібно перезапустити сервіс СУБД. Minor-версії використовують однакову конфігурацію major-версії.
Зміна пароля користувача root для MariaDB, MySQL або PostgreSQL зазвичай здійснюється через командний інтерфейс або панель ServBay.
Caddy (etc/caddy)
Файл конфігурації Caddy (Caddyfile) міститься у каталозі etc/caddy.
Важливо: ServBay автоматично генерує Caddyfile згідно налаштувань сайтів у панелі керування. Не редагуйте цей файл вручну — зміни буде перезаписано при наступній генерації конфігурації в ServBay. Для додавання кастомних налаштувань використовуйте панель керування сайтом.
Nginx (etc/nginx)
Головний конфігураційний файл Nginx — nginx.conf, розміщений у etc/nginx. Як і Caddy, ServBay автоматично додає до нього необхідні конфігуаційні фрагменти. Ручне редагування можливе, але рекомендується керувати налаштуваннями через панель ServBay.
dnsmasq (etc/dnsmasq)
Каталог etc/dnsmasq містить dnsmasq.conf (базова конфігурація) і domains.conf (автоматично створюється ServBay під час налаштування локальних доменів).
Важливо: Обидва файли генеруються та оновлюються ServBay. Не змінюйте їх вручну — це може призвести до проблем із доступністю локальних сайтів.
Інші конфігурації пакетів
Інші підтримувані пакети ServBay — Node.js, Python, Go, Java, Ruby, Rust тощо — якщо вони мають глобальні або сервісні конфігурації, вони також розміщуються у відповідних підкаталогах структури etc, згідно принципу розділення за версіями.
Внутрішній каталог даних ServBay (data/servbay)
/Applications/ServBay/data/servbay1
Тут збережені критично важливі файли конфігурації, інформація про стан і персональні налаштування користувача, що забезпечують коректну роботу ServBay, панелі керування, конфігурацію сайтів і баз даних тощо.
Важливо: Регулярно створюйте резервну копію цього каталогу. Не видаляйте й не змінюйте файли вручну — це призведе до втрати налаштувань або неможливості запуску ServBay.
Виконувані файли та скрипти (bin, sbin, script)
/Applications/ServBay/bin -> package/bin
/Applications/ServBay/sbin -> package/sbin
/Applications/ServBay/script1
2
3
2
3
Всі виконувані файли ServBay знаходяться у bin і sbin (символічні посилання на package/bin і package/sbin). Тут розміщені основні інструменти та runtime різних мов.
Файли доступні з терміналу, оскільки ServBay додає ці каталоги у PATH під час старту. Тут ви знайдете:
- Основні утиліти:
curl,openssl,frpcтощо. - Різні версії мов:
php(за замовчуванням),php-5.6,php-7.4,php-8.3,node(за замовчуванням),node-16,node-18,python3,go,java,ruby,rustcтощо. Для конкретної версії зазначте її у назві. - Клієнти баз даних:
mysql,psql,mongosh,redis-cliта ін.
Каталог script (/Applications/ServBay/script) містить системні скрипти ServBay для керування сервісами, ініціалізації баз даних, обслуговування тощо. Вручну запускати скрипти можна, але рекомендовано використовувати обгортку servbayctl, яка надає дружній інтерфейс.
Наприклад, для запуску PHP 7.4 FPM:
bash
servbayctl start php 7.41
servbayctl знаходиться у /Applications/ServBay/bin.
Каталог баз даних (db)
/Applications/ServBay/db1
Тут зберігаються реальні файли даних кожної з інтегрованих баз даних ServBay. Структура така ж, як у файлів конфігурації — за типом пакета й версією:
/Applications/ServBay/db/mariadb/<major_version>: Дані MariaDB./Applications/ServBay/db/mysql/<major_version>: Дані MySQL./Applications/ServBay/db/postgresql/<major_version>: Дані PostgreSQL./Applications/ServBay/db/mongodb: Дані MongoDB./Applications/ServBay/db/redis: Дані Redis.
У кожній СУБД файли даних спільні для усіх minor-версій major-версії (наприклад, MariaDB 11.2.x завжди використовує /Applications/ServBay/db/mariadb/11.2).
Важливо: У цьому каталозі містяться всі ваші локальні бази даних. Перед внесенням змін (оновленням ServBay, перенесенням системи тощо) обов'язково зробіть повний бекап /Applications/ServBay/db. Автоматичне резервне копіювання ServBay також охоплює ці дані.
Каталог журналів (logs)
/Applications/ServBay/logs -> package/var/log1
Всі журнали ServBay організовані у /Applications/ServBay/logs (символічне посилання на /Applications/ServBay/package/var/log). Це дозволяє зручно відстежувати стан й помилки окремих сервісів.
Журнали структуровані за типом сервісу:
logs/caddy/абоlogs/nginx/: журнали доступу та помилок Caddy або Nginx, часто організовані за сайтами.logs/php/: журнали PHP-FPM (php-fpm.log) і журнал помилок PHP (errors.log).errors.logмістить серйозні помилки та фатальні виключення.logs/mariadb/,logs/mysql/,logs/postgresql/,logs/mongodb/,logs/redis/: специфічні журнали відповідних БД (помилки, повільні запити тощо).- Журнали інших сервісів: Python, Go, Java, Ruby, Rust тощо — у відповідних підкаталогах.
Примітка: Файли журналів, особливо журнали доступу та помилок, можуть займати багато місця на диску у процесі активної роботи над проєктами. Рекомендується періодично перевіряти та чистити їх.
Каталог пакетів (package)
/Applications/ServBay/package1
Тут розміщуються всі пакети ServBay. Кожен пакет має окремий підкаталог із структурою назва/major-версія/full-версія. Наприклад, PHP 8.3.7 буде у /Applications/ServBay/package/php/8.3/8.3.7.
Встановлення, видалення та перемикання між версіями пакетів легко здійснюється через панель ServBay.
Старі, непотрібні версії пакетів можете видалити вручну, щоб звільнити місце на диску (наприклад, /Applications/ServBay/package/php/8.2/8.2.10).
Важливо: У каталозі кожної major-версії (наприклад, /Applications/ServBay/package/php/8.3) є символічне посилання current, яке вказує на актуальну minor-версію. Не видаляйте та не змінюйте ці посилання вручну — інакше ServBay не зможе знайти потрібні виконувані файли чи бібліотеки, сервіс може не запускатися.
Каталог SSL-сертифікатів (ssl)
/Applications/ServBay/ssl1
Тут зберігаються всі файли, пов’язані з SSL/TLS-сертифікатами:
- Сертифікати, отримані автоматично для ваших сайтів через ACME (наприклад, у
ssl/caddyабоssl/acme, залежно від використовуваного веб-сервера). - Root CA для локальної HTTPS-розробки (ServBay User CA) і публічні сертифікати (ServBay Public CA) — зберігаються в
ssl/privateіssl/public. Додавання CA у довірені через системні налаштування дозволяє уникнути попереджень браузера при роботі з локальними сайтами по HTTPS.
Каталог резервних копій (backup)
/Applications/ServBay/backup1
Тут зберігаються автоматичні резервні копії ServBay, що містять:
backup/config: копії ядра та конфігурацій пакетів.backup/databases: резервні копії даних MariaDB, MySQL, PostgreSQL, MongoDB.backup/ssl: резервні копії SSL-сертифікатів.backup/websites: бекапи сайтів із каталогу/Applications/ServBay/www.
Рекомендується періодично перевіряти цей каталог й переносити важливі бекапи на зовнішні носії для додаткової безпеки.
Тимчасовий каталог (tmp)
/Applications/ServBay/tmp1
Тут зберігаються тимчасові файли різних сервісів, найчастіше — .pid і сокет-файли:
.pid— містить номер процесу сервісу.- Сокети:
php-cgi.sock,mysql.sock,pgsql.sockтощо. За допомогою файлових сокетів локальні програми можуть безпосередньо підключатися до php-fpm, БД тощо — це дає менші затримки й більшу продуктивність порівняно з TCP-портами для взаємодії всередині одного комп’ютера.
Публічні компоненти та dev-бібліотеки (package/common)
/Applications/ServBay/package/common1
Тут збережені спільні компоненти і бібліотеки, що потрібні для роботи всіх пакетів ServBay — динамічні бібліотеки *.dylib, а також опціональні dev-бібліотеки.
Якщо ви встановили ServBay Development Library (додатковий пакет, потрібний для компіляції), у цьому каталозі з’явиться include (файли заголовків) і lib (статичні бібліотеки *.a, лінківки *.la). Це корисно для компіляції PHP-розширень або додатків з залежностями від ServBay.
Важливо: Не видаляйте файли *.dylib у package/common/lib — вони потрібні для запуску інтегрованого ПЗ. Вилучення призведе до помилок через відсутність залежностей.
Висновок
Структура каталогів ServBay чітко розділяє пакети, конфігурації, дані, журнали й сайти, спираючись на традиції Unix, щоб зробити управління локальним середовищем для розробки інтуїтивно зрозумілим. Знання призначення цих папок значно підвищує ефективність роботи з ServBay. Регулярне резервне копіювання ключових директорій (особливо data та db) — запорука захисту ваших проектів.
