Конфигурация сайта через settings.php в платформе Битрикс

Раздел: Управление 1С-Битрикс -> Конфигурация 1С-Битрикс

Основные принципы работы с файлом 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-зависимости не будут переустанавливаться.

Файл settings.php в 1С-Битрикс - comments

En
Bitrix файл settings php (php)