До версии 18.5.200 действовал такой формат записи:
|
---|
'cache' => array ( 'value' => array ( 'type' => 'files', ), 'readonly' => false, ), |
Дата последнего изменения: 31.01.2024
Особый файл |
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).
Кроме этого настройки могут задаваться в файле .settings_extra.php. Базовый файл настроек содержит неизменные настройки, к которым есть API. Файл .settings_extra.php может содержать произвольный код, который меняет настройки динамически. Соответственно к нему нет API.
Описание параметров |
Ниже описаны параметры, которые возможны для изменения:
Секция 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',), 'sid' => $_SERVER["DOCUMENT_ROOT"]."#01" ), ), 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-сервера отправителя и организовать разделение потоков отправки писем.
Список ссылок по теме: