Конфигурация сайта через settings.php в платформе Битрикс
Основные принципы работы с файлом settings.php в 1С-Битрикс
Файл .settings.php (обычно располагается в корневой директории /bitrix/.settings.php) является центральным конфигурационным файлом системы 1С-Битрикс. Он определяет параметры подключения к базам данных, настройки кэширования, сессий, отладки и многие другие аспекты работы платформы. Понимание его структуры позволяет гибко адаптировать CMS под любые инфраструктурные задачи.
Структура файла
Файл представляет собой PHP-массив, возвращаемый через return. Внутри массива ключи соответствуют категориям настроек:
<?php
return [
'connections' => [ ... ],
'cache' => [ ... ],
'session' => [ ... ],
'exception_handling' => [ ... ],
'highloadblock' => [ ... ],
'composer' => [ ... ],
];
Bitrix файл settings php (файл settings.php в 1с-битрикс)
Как изменить подключение к базе данных через settings.php?
Основная секция 'connections' задаёт параметры для каждого типа соединения. По умолчанию используется ключ 'default' с драйвером MySQL.
<?php
return [
'connections' => [
'default' => [
'className' => '\Bitrix\Main\DB\MysqlConnection',
'host' => 'localhost',
'database' => 'my_db',
'login' => 'user',
'password' => 'secret',
'options' => [
'initCommands' => ['SET NAMES utf8'],
],
],
],
];
Типичная ошибка: после изменения файла сайт перестал открываться
Причина – синтаксическая ошибка в PHP-коде (например, пропущенная запятая). Проверить корректность можно выполнив команду php -l /bitrix/.settings.php. Если ошибок нет, проверьте права доступа - файл должен читаться веб-сервером.
Как настроить кэширование через Redis или Memcached?
В секции 'cache' указывается тип кэшера. Для Redis используется класс \Bitrix\Main\Data\Cache\Engine\Redis, для Memcached – \Bitrix\Main\Data\Cache\Engine\Memcached.
<?php
return [
'cache' => [
'type' => [
'class_name' => '\\Bitrix\\Main\\Data\\Cache\\Engine\\Redis',
'host' => '127.0.0.1',
'port' => 6379,
'prefix' => 'my_',
],
],
];
Проблема: кэш не очищается
Если используется Memcached, проверьте, что сервер Memcached запущен и доступен по указанному адресу. Для Redis убедитесь, что модуль redis установлен в PHP.
Как включить отладку и логирование ошибок через settings.php?
Секция 'exception_handling' управляет поведением при ошибках. Для включения детального отображения ошибок на время разработки используйте:
<?php
return [
'exception_handling' => [
'value' => [
'debug' => true,
'log' => true,
'path' => '/home/bitrix/log/error.log',
],
],
];
Ошибка: логи не пишутся
Проверьте права на папку, указанную в 'path'. Папка должна быть доступна для записи пользователю веб-сервера.
Расширенные примеры настройки settings.php
Пример 1. Множественные подключения к разным базам данных
В одном файле можно объявить несколько соединений, например для мастер-сервера и реплики. Ключи могут быть произвольными, затем на уровне приложения выбирается нужное соединение.
<?php
return [
'connections' => [
'master' => [
'className' => '\\Bitrix\\Main\\DB\\MysqlConnection',
'host' => '192.168.1.10',
'database' => 'bitrix_main',
'login' => 'admin',
'password' => 'pass1',
],
'slave' => [
'className' => '\\Bitrix\\Main\\DB\\MysqlConnection',
'host' => '192.168.1.11',
'database' => 'bitrix_main',
'login' => 'readuser',
'password' => 'pass2',
'options' => [
'replica' => true,
],
],
],
];
Результат: при использовании соединения 'slave' система сможет выполнять только операции чтения, что повышает производительность.
Пример 2. Использование внешнего файла для переопределения настроек (.settings_extra.php)
Файл .settings_extra.php автоматически объединяется с основным, если существует. Это удобно для различий между средами (локальная, тестовая, боевая).
<?php
// /bitrix/.settings_extra.php
return [
'connections' => [
'default' => [
'host' => 'localhost',
'database' => 'local_db',
'login' => 'local_user',
'password' => 'local_pass',
],
],
'cache' => [
'type' => [
'class_name' => '\\Bitrix\\Main\\Data\\Cache\\Engine\\Files',
],
],
];
Результат: на локальной машине используются файловое кэширование и отдельные реквизиты БД, не затрагивая базовые настройки.
Пример 3. Настройка сессий через Redis
Для хранения сессий в Redis укажите модуль \Bitrix\Main\Session\RedisSessionHandler. Это ускоряет работу при кластеризации.
<?php
return [
'session' => [
'handlers' => [
'general' => [
'class' => '\\Bitrix\\Main\\Session\\RedisSessionHandler',
'host' => '127.0.0.1',
'port' => 6379,
'database' => 0,
],
],
'sid' => [
'prefix' => 'BITRIX_SM_',
],
],
];
Результат: сессии всех пользователей хранятся в Redis, что позволяет бесшовно масштабировать фронтенд-серверы.
Пример 4. Отключение composer автоматического обновления
Иногда требуется запретить обновление зависимостей через встроенный composer. Для этого используется секция 'composer'.
<?php
return [
'composer' => [
'disable_composer' => true,
],
];
Результат: при обновлении системы через административную панель composer-зависимости не будут переустанавливаться.