Подробное описание структуры директорий 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.local1
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/servbay1
Тут хранятся критически важные файлы и настройки для работы самого приложения ServBay, статус и индивидуальные параметры пользователя. Они необходимы для работы панели управления, управления пакетами, настройки сайтов и БД.
Важно: Резервируйте эту папку регулярно. Не удаляйте и не редактируйте ее содержимое вручную, иначе ServBay может не стартовать или настройки будут потеряны.
Папки исполняемых файлов и скриптов (bin, sbin, script)
/Applications/ServBay/bin -> package/bin
/Applications/ServBay/sbin -> package/sbin
/Applications/ServBay/script1
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.41
Утилита servbayctl лежит в /Applications/ServBay/bin.
Директория файлов баз данных (db)
/Applications/ServBay/db1
Здесь хранятся данные всех установленных баз данных: по типу пакета и версии.
/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/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). Последний содержит только фатальные ошибки, не обработанные фреймворками.logs/mariadb/,logs/mysql/,logs/postgresql/,logs/mongodb/,logs/redis/: логи ошибок, медленных запросов и пр.- Логи других сервисов: Python, Go, Java, Ruby, Rust и др.
Внимание: Файлы логов, особенно логи посещений и ошибок, способны быстро занимать много места при активной разработке. Регулярно очищайте ненужные логи.
Директория пакетов (package)
/Applications/ServBay/package1
В этой папке хранятся все установленные пакеты 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/ssl1
Здесь находятся все файлы, связанные с SSL/TLS:
- Автоматически выданные сертификаты для ваших локальных сайтов по ACME (обычно в
ssl/caddyилиssl/acme— зависит от используемого сервера). - Корневые и публичные сертификаты для локального HTTPS (ServBay User CA и ServBay Public CA — в
ssl/privateиssl/public). После установки этих CA в доверенные системы ваш браузер будет доверять сертификатам ServBay и не выдавать предупреждения HTTPS.
Директория резервных копий (backup)
/Applications/ServBay/backup1
Здесь ServBay хранит файлы резервных копий всех важных данных и конфигов:
backup/config: Резервные копии настроек ServBay и конфигов пакетов.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. С помощью них процессы сервиса взаимодействуют через Unix Domain Socket, что обеспечивает высокую производительность и низкую задержку для локальных коммуникаций.
Общие компоненты и библиотеки разработки (package/common)
/Applications/ServBay/package/common1
Здесь размещаются общие компоненты и библиотеки, используемые всеми пакетами ServBay:共享ные файлы (*.dylib) и дополнительно библиотеки для разработки.
Если установлен ServBay Development Library (опциональный пакет), тут появятся папки include и lib с заголовочными и статическими/линковочными файлами (*.a, *.la). Это полезно при компиляции расширений или программ, которые зависят от внутренних библиотек ServBay.
Важно: Не удаляйте вручную файлы *.dylib из package/common/lib — это критические библиотеки для работы пакетов. Их отсутствие приведёт к ошибкам запуска сервисов.
Итоги
Структура директорий ServBay логична и разделяет пакеты, конфиги, данные, логи и сайты, основываясь на привычных стандартах Unix — это помогает разработчику быстро ориентироваться и управлять окружением. Внимательно познакомившись с подобной архитектурой, вы значительно оптимизируете свою работу с Web-проектами. Регулярное резервирование важных папок (data и db) — залог того, что ваши данные останутся в безопасности.
