|
До версии 18.5.200 действовал такой формат записи:
|
|---|
'cache' => array (
'value' => array (
'type' => 'files',
),
'readonly' => false,
), |
Дата последнего изменения: 27.08.2025
Особый файл |
Bitrix Framework имеет ряд специфичных настроек ядра, которые не имеют визуального интерфейса редактирования. Этот подход вызван тем, что изменение настроек или ошибка в них легко могут привести к неработоспособности системы (настройки подключения к базе данных, настройки кеширования и т.д.).
Настройки в D7 выполняются в файле /bitrix/.settings.php. Напомним, что в старом ядре аналогичные настройки выполнялись в файле /bitrix/php_interface/dbconn.php. Файл .settings.php структурно сильно отличается от прежнего dbconn.php.
Даже если вы используете код только старого ядра, то файл .settings.php должен быть создан. Возможна ситуация, когда при установке обновлений какой-то из встроенных механизмов системы будет переписан на ядро D7. Если этот файл корректно не настроен, то это может привести к неработоспособности системы.
Иногда бывают ситуации, что файл .settings.php отсутствует. Его можно создать в автоматическом режиме, если выполнить в
командной строке
Командная PHP-строка – инструмент системы, позволяющий запускать произвольный код на PHP с вызовами функций. Подробнее...
:
Bitrix\Main\Config\Configuration::wnc();.
Править параметры можно с помощью класса Configuration (Bitrix\Main\Config\Configuration).
readonly. Этот параметр означает, что данные настройки не будут изменены через API.Кроме этого настройки могут задаваться в файле .settings_extra.php. Базовый файл настроек содержит неизменные настройки, к которым есть API. Файл .settings_extra.php может содержать произвольный код, который меняет настройки динамически. Соответственно к нему нет API.
С версии 24.100.0 главного модуля файлы настроек .settings.php и .settings_extra.php могут быть размещены в папке /local В ядре D7 основные файлы пользовательских проектов вынесены из папки /bitrix в папку /local. Это позволяет изолировать изменяющиеся файлы вашего проекта от папки продукта. , а файл dbconn.php — в папке /local/php_interface.
Описание параметров |
Ниже описаны параметры, которые возможны для изменения:
Секция cache
Отвечает за настройки кеширования, позволяет задать способ кеширования и его параметры.
|
До версии 18.5.200 действовал такой формат записи:
|
|---|
'cache' => array (
'value' => array (
'type' => 'files',
),
'readonly' => false,
), |
В версии 18.5.200 формат записи был изменён одновременно с возможностью использовать в кешировании Redis. Оба формата на данный момент работоспособны, но вендор настойчиво рекомендует использовать новый вариант записи.
|
Примеры нового формата записи для разных способов кеширования.
|
|---|
|
Redis: 'cache' => array( 'value' => array(
'type' => array(
'class_name' => '\\Bitrix\\Main\\Data\\CacheEngineRedis',
'extension' => 'redis'
),
'redis' => array(
'host' => '127.0.0.1',
'port' => '6379',
),
'sid' => $_SERVER["DOCUMENT_ROOT"]."#01"
),
),
Memcache 'cache' => array(
'value' => array(
'type' => array(
'class_name' => '\\Bitrix\\Main\\Data\\CacheEngineMemcache',
'extension' => 'memcache'
),
'memcache' => array(
'host' => '127.0.0.1',
'port' => '11211',
),
'sid' => $_SERVER["DOCUMENT_ROOT"]."#01"
),
),
Apc 'cache' => array(
'value' => array(
'type' => array(
'class_name' => '\\Bitrix\\Main\\Data\\CacheEngineApc',
'extension' => 'apcu'
),
'sid' => $_SERVER["DOCUMENT_ROOT"]."#01"
),
),
Кеш в файлах 'cache' => array( 'value' => array( 'type' => array( 'class_name' => '\\Bitrix\\Main\\Data\\CacheEngineFiles', ), 'root_directory' => '/user_cache_dir/', 'sid' => $_SERVER["DOCUMENT_ROOT"]."#01" ), ) По умолчанию корневая папка файлового кеша — /bitrix/cache/. С версии 24.100.0 главного модуля ее можно заменить на произвольную папку 'root_directory'. XCache 'cache' => array(
'value' => array(
'type' => array(
'class_name' => '\\Bitrix\\Main\\Data\\CacheEngineXCache',
'extension' => 'xcache'
),
'sid' => $_SERVER["DOCUMENT_ROOT"]."#01"
),
),
|
|
/bitrix/.settings_extra.php.
|
Пример файла /bitrix/.settings_extra.php
|
|---|
<?php
return array (
'cache' => array(
'value' => array (
'type' => 'memcache',
'memcache' => array(
'host' => 'unix:///tmp/memcached.sock',
'port' => '0'
),
'sid' => $_SERVER["DOCUMENT_ROOT"]."#01"
),
),
);
?>
|
В базовом файле .settings.php содержатся неизменные настройки, к которым есть API. Файл .settings_extra.php может содержать произвольный код, который меняет настройки динамически в зависимости от каких-либо факторов. Соответственно для изменения настроек в этом файле нет API. Естественно в ходе выполнения этого произвольного кода должен быть возвращен массив подобной структуры базового файла.
Секция exception_handling
Отвечает за обработку ошибок.
'exception_handling' => array (
'value' => array (
'debug' => false,
'handled_errors_types' => E_ALL & ~E_NOTICE & ~E_STRICT & ~E_USER_NOTICE,
'exception_errors_types' => E_ALL & ~E_NOTICE & ~E_WARNING & ~E_STRICT & ~E_USER_WARNING & ~E_USER_NOTICE & ~E_COMPILE_WARNING & ~E_DEPRECATED,
'ignore_silence' => false,
'assertion_throws_exception' => true,
'assertion_error_type' => 256,
'log' => array (
'settings' => array (
'file' => 'bitrix/modules/error.log',
'log_size' => 1000000,
),
),
),
'readonly' => false,
),
|
В handled_errors_types, exception_errors_types, assertion_error_type необходимо передать тип ошибки. Тип ошибки представляет из себя числовой код. Но коды знать и помнить не нужно. Например, параметр exception_errors_types. Что означает данная запись: E_ALL & ~E_NOTICE & ~E_WARNING & ~E_STRICT & ~E_USER_WARNING & ~E_USER_NOTICE & ~E_COMPILE_WARNING?
Для начала обратимся к уровням ошибок интерпретатора PHP. Есть определенные значения и определенные константы, которые им соответствуют. В нашем же случае данная запись означает, что E_ALL (значение константы 2047), побитовое и не E_NOTICE, и не E_WARNING и не E_STRICT и не E_USER_WARNING и не E_USER_NOTICE и не E_COMPILE_WARNING. То есть E_ALL за исключением далее указанных констант, которые определяют тот или иной уровень ошибок интерпретатора PHP.
Секция connections
Параметры соединения с базой данных и другими источниками данных. Задается имя класса и параметры соединения.
'connections' => array (
'value' => array (
'default' => array (
'className' => '\\Bitrix\\Main\\DB\\MysqlConnection',
'host' => 'localhost:31006',
'database' => 'admin_bus',
'login' => 'admin_bus',
'password' => 'admin_bus',
'options' => 2,
'handlersocket' => array (
'read' => 'handlersocket',
),
),
'handlersocket' => array (
'className' => '\\Bitrix\\Main\\Data\\HsphpReadConnection',
'host' => 'localhost',
'port' => '9998',
),
),
'readonly' => true,
),
'className' => '\\Bitrix\\Main\\DB\\MysqliConnection',Также для этого в PHP должно быть установлено расширение mysqli, дополнительные проверки на наличие расширения не производятся! Включать mysqli нужно отдельно для старого (dbconn.php) и (.settings.php) ядра D7.
|
Корневая секция
В корневой секции размещаются настройки общего характера.
|
Секция pull
Эта секция реально нужна только для хостинг-партнеров (для автоматизации развертывания), для всех остальных рекомендуется использовать настройку через административный интерфейс.
|
Пример кода секции и таблица параметров
| |||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
'pull' => Array(
'value' => array(
'path_to_listener' => "http://#DOMAIN#/bitrix/sub/";,
'path_to_listener_secure' => "https://#DOMAIN#/bitrix/sub/";,
'path_to_modern_listener' => "http://#DOMAIN#/bitrix/sub/";,
'path_to_modern_listener_secure' => "https://#DOMAIN#/bitrix/sub/";,
'path_to_mobile_listener' => "http://#DOMAIN#:8893/bitrix/sub/";,
'path_to_mobile_listener_secure' => "https://#DOMAIN#:8894/bitrix/sub/";,
'path_to_websocket' => "ws://#DOMAIN#/bitrix/subws/",
'path_to_websocket_secure' => "wss://#DOMAIN#/bitrix/subws/",
'path_to_publish' => 'http://127.0.0.1:8895/bitrix/pub/',
'nginx_version' => '3',
'nginx_command_per_hit' => '100',
'nginx' => 'Y',
'nginx_headers' => 'N',
'push' => 'Y',
'websocket' => 'Y',
'signature_key' => '1111111111',
'signature_algo' => 'sha1',
'guest' => 'N',
),
),
|
Секция http_client_options
Секция задаёт опции по умолчанию для класса Bitrix\Main\Web\HttpClient.
С версии main 23.0.0 в HttpClient добавлена поддержка PSR-18. Помимо PSR, клиент работает в legacy-режиме, поддерживает очереди асинхронных запросов и библиотеку CURL.
|
* – опции, работающие только в legacy-режиме.
Пример настройки:
'http_client_options' =>
array (
'value' =>
array (
'redirect' => true,//делаем редиректы, если требуется
'redirectMax' => 10,//но не более 10
'version' => '1.1'//работаем по протоколу http 1.1
),
'readonly' => false,
),
Правильно ли вы указали настройки, можно проверить так:
use Bitrix\Main\Config\Configuration;
print_r(Configuration::getValue("http_client_options"));
Должен быть выведен ваш массив.
Секция services
Секция предназначена для регистрации сервисов. Подробнее о настройках смотрите в уроке
Сервис Локатор
Сервис локатор (локатор служб) – это шаблон проектирования для удобной работы с сервисами приложения. Идея сервиса в том, что вместо создания конкретных сервисов напрямую (с помощью new), используется специальный объект (сервис локатор), который будет отвечать за создание, нахождение сервисов.
Подробнее ...
Секция routing
Секция отвечает за подключение файлов с конфигурацией маршрутов
роутинга
Доступно в модуле main начиная с версии 21.100.0.
Подробнее...
, которые располагаются в папках /bitrix/routes/ и /local/routes/. Для подключения файлов опишите их:
'routing' => ['value' => [ 'config' => ['web.php', 'api.php'] ]], // подключатся файлы: // /bitrix/routes/web.php, /local/routes/web.php, // /bitrix/routes/api.php, /local/routes/api.php
Секция session
Ядро поддерживает четыре варианта для хранения (файлы, redis, database, memcache) данных сессии. Способ хранения описывается в секции session. Подробнее.
Ключ crypto_key
Чтобы ядро могло шифровать данные необходимо указать в настройках /bitrix/.settings.php ключ crypto_key. Подробнее...
Секция smtp
С версии 21.900.0 модуля main в файле /bitrix/.settings.php можно использовать опцию smtp, которая позволяет
включить
Чтобы в продуктах 1С-Битрикс: Управление сайтом и коробочных версиях Битрикс24 включить возможность использования SMTP-сервера отправителя, отредактируйте файл /bitrix/.settings.php, добавив следующий код:
Подробнее...
возможность использования SMTP-сервера отправителя и организовать разделение потоков отправки писем.
Секция default_language
Cекция default_language задает язык по умолчанию. Система покажет текст на этом языке, если фраза не переведена на нужный язык. Настройка необходима в мультиязычных проектах, когда не готовы все переводы. Интерфейс не будет пустым и останется читаемым.
Получить язык по умолчанию можно с помощью метода Bitrix\Main\Localization\Loc::getDefaultLang.
Список ссылок по теме: