Yandex Metrika
sanches.free 15 просмотров

Файлы конфигурации Битрикса, шаблоны сайта и BX_PERSONAL_ROOT в мультисайте

Два типа «настроек» в корне проекта

В типовой установке 1С‑Битрикс модули и ядро опираются на PHP‑файлы в каталоге /bitrix. Отдельно стоит держать в голове пару точек входа, которые чаще всего трогают при переносах и отладке окружения:

  • /bitrix/.settings.php — параметры подключения к БД, кешу, сессиям и другим подсистемам в актуальном формате (в новых версиях это основной «центр правды» после миграций с устаревших вариантов).
  • /bitrix/php_interface/dbconn.php — legacy‑файл с константами БД; на старых или смешанных проектах он ещё живёт рядом со .settings.php, и расхождение между ними — частая причина «подключается не та база» после копирования файлов.

Перед правками делайте резервную копию и правьте только на тестовой копии сайта: ошибка в синтаксисе PHP или в учётных данных мгновенно выводит площадку из строя.

Привязка шаблонов к сайту

Если визуальная часть «слетела» после импорта БД или переноса файлов, первое место проверки — админка: Настройки → Настройки продукта → Сайты → Список сайтов, далее редактирование нужной записи (например, для s1 это форма вида /bitrix/admin/site_edit.php?lang=ru&LID=s1). Там задаётся активный шаблон и порядок их подключения для конкретного LID.

Когда нужно массово или скриптово сравнить факт в базе, связь шаблонов с сайтами лежит в таблице b_site_template. Восстановление «как было на боевой копии» часто сводится к переносу соответствующих строк между базами после того, как сами файлы шаблонов уже лежат в /local/templates/ или /bitrix/templates/.

BX_PERSONAL_ROOT: отдельное дерево под домен

Константа окружения BX_PERSONAL_ROOT — штатный способ заставить второй домен использовать собственный набор персональных каталогов (кеш, композитный кеш, php_interface конкретного сайта и т.д.), не размножая полную установку ядра. В документации и коде платформы к персональной зоне относят, в частности, сегменты вроде cache, managed_cache, stack_cache, а также дерево шаблонов там, где оно должно быть изолировано от основного виртуального хоста.

Значение задаётся так, чтобы веб‑процесс PHP видел переменную до подключения prolog_before.php. На Apache через модуль окружения:

SetEnv BX_PERSONAL_ROOT "/srv/bitrix_sites/example_com"

На связке Nginx → PHP‑FPM удобно прописать переменную в пуле FPM ([www] или отдельный пул под второй домен):

env[BX_PERSONAL_ROOT] = /srv/bitrix_sites/example_com

Если вместо FPM используется fastcgi напрямую с php‑cgi или аналогом, можно передать параметром:

fastcgi_param BX_PERSONAL_ROOT /srv/bitrix_sites/example_com;

Важно: путь должен быть одним и тем же для всех запросов к данному виртуальному хосту, и директория реально должна существовать с корректными правами пользователя процесса PHP — иначе кеш и подключаемые файлы сайта начнут вести себя непредсказуемо.

Сжатый вывод

  • Для связки «ядро ↔ база» сверяйте и .settings.php, и наличие/содержимое dbconn.php на legacy‑установках.
  • Шаблоны привязываются через админку сайтов; резерв проверки — таблица b_site_template.
  • BX_PERSONAL_ROOT изолирует персональные каталоги при мультисайте; задаётся на уровне Apache, пула FPM или fastcgi_param в Nginx.

Не хотите копаться сами?

Починю за 1-3 дня. Без предоплаты — оплата по результату.

15+ лет опыта с 1С-Битрикс · Без предоплаты · 7 дней гарантии