Добавление сайта в пул BitrixEnv — это не копирование файлов в каталог, а операция через меню, при которой окружение само генерирует vhost nginx, отдельный пул php-fpm и подключает базу. Разберём модели размещения и полный цикл настройки.
Модели размещения сайтов
BitrixEnv поддерживает несколько способов добавить сайт, и выбор влияет на изоляцию и структуру каталогов.
| Модель | Где живёт сайт | Когда применять |
|---|---|---|
| На ядре (kernel) | отдельный DocumentRoot, своя копия ядра | независимый сайт с собственной лицензией |
| В подкаталоге | папка внутри существующего сайта | раздел/поддомен на том же ядре |
| На отдельном домене | свой vhost и корень в /home/bitrix/ext_www/ | несколько независимых проектов на сервере |
Основной сайт по умолчанию лежит в /home/bitrix/www. Дополнительные сайты окружение размещает в /home/bitrix/ext_www/<домен>.
Создание сайта через меню
Сайты добавляют в разделе Manage sites in the pool. Типовой сценарий для нового домена:
- Запустите
/root/menu.sh→ управление сайтами. - Выберите создание сайта (на ядре / в каталоге / на отдельном домене).
- Укажите доменное имя, например
shop.example.ru. - Задайте параметры БД: имя базы, пользователя, пароль (или использовать существующего пользователя окружения).
После подтверждения окружение создаёт каталог сайта, генерирует конфиг nginx, отдельный пул php-fpm и заготовку базы. Останется распаковать дистрибутив продукта или восстановить сайт из копии.
Структура каталогов и права
Правильные владельцы и права — обязательное условие работы кэша, загрузок и обновлений.
- Корень основного сайта:
/home/bitrix/www. - Дополнительные сайты:
/home/bitrix/ext_www/<домен>. - Владелец файлов:
bitrix:bitrix.
Если переносили файлы вручную, выставьте владельца рекурсивно:
chown -R bitrix:bitrix /home/bitrix/ext_www/shop.example.ru
bitrix/cache или upload почти всегда означают неверного владельца каталога после ручного копирования.nginx-vhost и пул php-fpm
Для каждого сайта окружение создаёт свою пару «vhost nginx + пул php-fpm». Это даёт изоляцию: сайты не делят рабочие процессы PHP.
- Конфиги nginx окружения — в
/etc/nginx/bx/, сайтовые vhost подключаются оттуда. - Пулы php-fpm — отдельные файлы в
/etc/php-fpm.d/(свой пул на сайт со своим сокетом). - Проверка синтаксиса перед перезагрузкой:
nginx -t. - Применение:
systemctl reload nginxиsystemctl reload php-fpm.
База данных сайта
При добавлении сайта окружение может создать отдельную базу или подключить существующую. Для независимых проектов держите отдельные базы и пользователей — это упрощает бэкапы и разграничение доступа.
- Параметры подключения сайт хранит в
bitrix/.settings.phpиbitrix/php_interface/dbconn.php. - Проверить доступ к базе:
mysql -u<user> -p <dbname>. - Кодировка —
utf8mb4для полной поддержки эмодзи и спецсимволов.
Если сайт восстанавливается из резервной копии продукта, скрипт восстановления сам создаст структуру БД — важно лишь заранее подготовить пустую базу и пользователя с правами.
DNS и SSL для нового сайта
Чтобы домен открывался, его A-запись должна указывать на IP сервера, а сайт — иметь сертификат.
- Пропишите A-запись домена на IP узла с ролью web.
- Дождитесь распространения DNS:
dig shop.example.ru +short. - Выпустите SSL — в BitrixEnv это делается из меню (Let’s Encrypt) для конкретного сайта.
Проверка и типичные ошибки
После добавления сайта пройдитесь по контрольному списку:
- сайт открывается по домену и отдаёт заголовки nginx:
curl -I http://shop.example.ru; - PHP работает — открывается админка, нет ошибок 502/504;
- владелец файлов
bitrix:bitrix, кэш и upload пишутся; - сайт виден в списке пула в меню.
| Симптом | Частая причина |
|---|---|
| 502/504 Bad Gateway | не запущен или неверный сокет php-fpm пула |
| Ошибка записи в кэш | неверный владелец каталога сайта |
| Домен не открывается | A-запись не указывает на сервер |
| SSL не выпускается | DNS не распространился до выпуска |
Итог
Добавление сайта в пул — это операция через меню, при которой окружение само генерирует vhost nginx, отдельный пул php-fpm и подключает базу. Ваша задача — выбрать модель размещения, задать домен и БД, выставить права и настроить DNS/SSL.
Если нужно разместить десятки сайтов на одном окружении, изолировать проекты по пулам php-fpm и выстроить регламент выпуска SSL и бэкапов — мы в B2Bsite настраиваем такую инфраструктуру и берём её на сопровождение под прозрачный SLA.
Частые вопросы
Чем отличается сайт на ядре от сайта в подкаталоге?
Сайт на ядре имеет свой DocumentRoot и отдельную копию ядра, а сайт в подкаталоге работает внутри существующего сайта на его ядре. Первый вариант — для независимых проектов.
Где физически размещаются дополнительные сайты?
Основной сайт лежит в /home/bitrix/www, а дополнительные окружение размещает в /home/bitrix/ext_www/<домен> с владельцем bitrix:bitrix.
Можно ли создать vhost nginx вручную?
Не стоит. Окружение генерирует и обслуживает vhost само, а ручные правки перезапишет. Кастомные директивы выносите в отдельные include-файлы.
Почему сайт отдаёт 502 Bad Gateway?
Обычно проблема в пуле php-fpm: служба не запущена или nginx проксирует на неверный сокет. Проверьте статус php-fpm и конфиг пула сайта.
Когда выпускать SSL-сертификат?
Только после того, как A-запись домена указывает на сервер и DNS распространился. Валидация Let's Encrypt проверяет доступность сайта по HTTP.
Нужна ли отдельная база для каждого сайта?
Для независимых проектов — да. Отдельные базы и пользователи упрощают резервное копирование и разграничение доступа между сайтами.
Почему появляются ошибки записи в кэш и upload?
Практически всегда это неверный владелец каталога после ручного копирования файлов. Выставьте chown -R bitrix:bitrix на корень сайта.
Поможем с настройкой и поддержкой Для разработчиков
Поможем с настройкой, доработкой и поддержкой Для разработчиков.