Подробное описание структуры директорий ServBay
Общее описание
ServBay — это локальное Web-окружение, поддерживающее macOS и Windows и обладающее упрощённой и логичной структурой директорий. Если вы знакомы с системами Linux/Unix, то заметите, что организация файлов в ServBay во многом повторяет стандартные схемы, что облегчает поиск и управление файлами.
Место установки ServBay
ServBay по умолчанию устанавливается в следующих директориях:
- macOS:
/Applications/ServBay
- Windows:
C:\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 # Общие и библиотеки разработки
| | |____imap-uw
| | |____include # Заголовочные файлы (ServBay Development Library)
| | |____lib # Шаред и статические библиотеки (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 # Файлы во время выполнения (например, .pid)
|____sbin # Директория системных исполняемых файлов (симлинк на package/sbin)
|____script # Внутренние управляющие скрипты ServBay
|____ssl # Директория сертификатов SSL
| |____acme # SSL-сертификаты, полученные через ACME
| |____caddy # Автоматически созданные SSL-сертификаты 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 или другой инструмент для резервного копирования папки /Applications/ServBay
.
Корневая директория сайтов (www
)
Основная папка для ваших проектов — /Applications/ServBay/www
. Здесь размещаются все файлы локальных сайтов.
Для лёгкости управления рекомендуется создавать отдельную подпапку для каждого сайта или виртуального хоста (в ServBay — “сайт”).
Например, если у вас есть сайты 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.local
1
2
3
4
5
6
7
2
3
4
5
6
7
Такой подход позволяет чётко разделять проекты и домены, упрощая навигацию.
Директория конфигурационных файлов (etc
)
Папка конфигураций /Applications/ServBay/etc
— это симлинк на /Applications/ServBay/package/etc
. Здесь хранятся основные конфигурационные файлы всех установленных пакетов (PHP, MariaDB, Nginx, Caddy и пр.).
Изменять конфигурации можно по пути /Applications/ServBay/etc
. После любых изменений файлов чаще всего требуется перезапустить соответствующий сервис.
Примеры хранения конфигов популярных пакетов:
PHP (etc/php
)
Файлы PHP организованы по двум уровням папок — по основной версии. Например: 5.6
, 7.4
, 8.3
в etc/php
, где каждая — отдельная крупная версия PHP. Структура:
php
|____5.6 # Конфиги PHP 5.6
| |____conf.d # Дополнительные конфигурации расширений
| |____php.ini # Главный конфиг PHP
|____7.4 # Конфиги PHP 7.4
| |____conf.d # Конфиги расширений
| |____php-fpm.d # Конфиги пулов 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
(главный FPM), pear.conf
и др. После изменения необходимо перезапустить PHP-FPM через контроллер ServBay или команду servbayctl
.
conf.d
— папка для расширений, где размещаются настройки xdebug.ini
, opcache.ini
, redis.ini
и пр. Их правка также требует перезапуска PHP-FPM.
Внимание: Все 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). После изменений перезапускайте сервис. Для смены пароля пользователя root используйте спец. инструменты 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
)
В этой папке лежат файлы dnsmasq.conf
(основной конфиг) и domains.conf
(автоматически генерируется ServBay для ваших доменов).
Важно: Оба файла автоматически создаются и управляются ServBay для корректной работы локальных доменов. Не меняйте их вручную, иначе локальные сайты могут стать недоступны.
Другие пакеты
Для Node.js, Python, Go, Java, Ruby, Rust и других поддерживаемых технологий, если есть глобальные или сервисные конфиги, они располагаются в подкаталогах etc
, также согласно схемы по версиям.
Внутренняя директория данных ServBay (data/servbay
)
/Applications/ServBay/data/servbay
1
Тут хранятся критически важные файлы и настройки для работы самого приложения ServBay, статус и индивидуальные параметры пользователя. Они необходимы для работы панели управления, управления пакетами, настройки сайтов и БД.
Важно: Резервируйте эту папку регулярно. Не удаляйте и не редактируйте ее содержимое вручную, иначе ServBay может не стартовать или настройки будут потеряны.
Папки исполняемых файлов и скриптов (bin
, sbin
, script
)
/Applications/ServBay/bin -> package/bin
/Applications/ServBay/sbin -> package/sbin
/Applications/ServBay/script
1
2
3
2
3
Все исполняемые файлы размещаются в bin
и sbin
(это симлинки на соответствующие папки в package). Здесь лежат все интегрированные утилиты и языковые рантаймы.
Можно запускать эти команды прямо в терминале, так как 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
и др. Вы можете запускать конкретную версию, указывая номер (например,php-7.4
). - Клиенты БД:
mysql
,psql
,mongosh
,redis-cli
и др.
В директории /Applications/ServBay/script
хранятся внутренние скрипты ServBay: запуск/остановка сервисов, инициализация БД, обслуживание и пр. Обычно они используются автоматизировано, рекомендуется работать через командную утилиту servbayctl
, которая находится в /Applications/ServBay/bin
и обеспечивает удобный интерфейс.
Например, чтобы запустить PHP FPM версии 7.4, используйте:
bash
servbayctl start php 7.4
1
Утилита servbayctl
лежит в /Applications/ServBay/bin
.
Директория файлов баз данных (db
)
/Applications/ServBay/db
1
Здесь хранятся данные всех установленных баз данных: по типу пакета и версии.
/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.
ServBay применяет модель «одна папка на версию», то есть для всех минорных версий большого релиза используется единая папка (например, MariaDB 11.2.x
— /Applications/ServBay/db/mariadb/11.2
).
Важно: Эта папка содержит все ресурсы ваших локальных баз данных. Перед обновлениями, переездом и пр. всегда резервируйте /Applications/ServBay/db
. Встроенное резервное копирование ServBay также охватывает эти данные.
Папка логов (logs
)
/Applications/ServBay/logs -> package/var/log
1
Все логи интегрированных сервисов 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
). Последний содержит только фатальные ошибки, не обработанные фреймворками.logs/mariadb/
,logs/mysql/
,logs/postgresql/
,logs/mongodb/
,logs/redis/
: логи ошибок, медленных запросов и пр.- Логи других сервисов: Python, Go, Java, Ruby, Rust и др.
Внимание: Файлы логов, особенно логи посещений и ошибок, способны быстро занимать много места при активной разработке. Регулярно очищайте ненужные логи.
Директория пакетов (package
)
/Applications/ServBay/package
1
В этой папке хранятся все установленные пакеты ServBay. Каждый пакет располагается в своей подпапке по типовой схеме: имя_пакета/мажорная_версия/полная_версия
. Например, PHP может лежать в /Applications/ServBay/package/php/8.3/8.3.7
.
Управлять пакетами (установка/удаление/смена версии) удобно через панель управления ServBay.
Старые версии, которые больше не нужны, можно удалить вручную (например, /Applications/ServBay/package/php/8.2/8.2.10
).
Важно: В каждой мажорной версии пакета есть симлинк current
на актуальную (или самую новую) минорную версию. Не удаляйте и не меняйте вручную симлинки current
, иначе ServBay не сможет корректно работать с пакетами.
Директория SSL-сертификатов (ssl
)
/Applications/ServBay/ssl
1
Здесь находятся все файлы, связанные с SSL/TLS:
- Автоматически выданные сертификаты для ваших локальных сайтов по ACME (обычно в
ssl/caddy
илиssl/acme
— зависит от используемого сервера). - Корневые и публичные сертификаты для локального HTTPS (ServBay User CA и ServBay Public CA — в
ssl/private
иssl/public
). После установки этих CA в доверенные системы ваш браузер будет доверять сертификатам ServBay и не выдавать предупреждения HTTPS.
Директория резервных копий (backup
)
/Applications/ServBay/backup
1
Здесь ServBay хранит файлы резервных копий всех важных данных и конфигов:
backup/config
: Резервные копии настроек ServBay и конфигов пакетов.backup/databases
: Бэкапы баз данных — MariaDB, MySQL, PostgreSQL, MongoDB.backup/ssl
: Копии сертификатов SSL.backup/websites
: Резервные копии файлов сайта из/Applications/ServBay/www
.
Проверяйте папку регулярно и переносите копии на внешние диски для надёжности.
Временные файлы (tmp
)
/Applications/ServBay/tmp
1
Папка для файлов, создаваемых сервисами во время работы, обычно — .pid
и сокеты.
- Файлы
.pid
: идентификаторы процессов запущенных сервисов. - Сокет-файлы: например
php-cgi.sock
,mysql.sock
,pgsql.sock
. С помощью них процессы сервиса взаимодействуют через Unix Domain Socket, что обеспечивает высокую производительность и низкую задержку для локальных коммуникаций.
Общие компоненты и библиотеки разработки (package/common
)
/Applications/ServBay/package/common
1
Здесь размещаются общие компоненты и библиотеки, используемые всеми пакетами ServBay:共享ные файлы (*.dylib
) и дополнительно библиотеки для разработки.
Если установлен ServBay Development Library (опциональный пакет), тут появятся папки include
и lib
с заголовочными и статическими/линковочными файлами (*.a
, *.la
). Это полезно при компиляции расширений или программ, которые зависят от внутренних библиотек ServBay.
Важно: Не удаляйте вручную файлы *.dylib
из package/common/lib
— это критические библиотеки для работы пакетов. Их отсутствие приведёт к ошибкам запуска сервисов.
Итоги
Структура директорий ServBay логична и разделяет пакеты, конфиги, данные, логи и сайты, основываясь на привычных стандартах Unix — это помогает разработчику быстро ориентироваться и управлять окружением. Внимательно познакомившись с подобной архитектурой, вы значительно оптимизируете свою работу с Web-проектами. Регулярное резервирование важных папок (data
и db
) — залог того, что ваши данные останутся в безопасности.