Особый файл |
Bitrix Framework имеет ряд специфичных настроек ядра, которые не имеют визуального интерфейса редактирования. Этот подход вызван тем, что изменение настроек или ошибка в них легко могут привести к неработоспособности системы (настройки подключения к базе данных, настройки кеширования и т.д.).
Настройки в D7 выполняются в файле /bitrix/.settings.php. Напомним, что в старом ядре аналогичные настройки выполнялись в файле /bitrix/php_interface/dbconn.php. Файл .settings.php структурно сильно отличается от прежнего dbconn.php.
Примечание: т.к. в системе параллельно используются 2 ядра — старое ядро и D7, то и оба файла настроек используются одновременно. Поэтому необходимо производить настройки обоих файлов.
Даже если вы используете код только старого ядра, то файл .settings.php должен быть создан. Возможна ситуация, когда при установке обновлений какой-то из встроенных механизмов системы будет переписан на ядро D7. Если этот файл корректно не настроен, то это может привести к неработоспособности системы.
Иногда бывают ситуации, что файл .settings.php отсутствует. Его можно создать в автоматическом режиме, если выполнить в
командной строке
Командная PHP-строка — инструмент системы, позволяющий запускать произвольный код на PHP с вызовами функций. Подробнее…
:
BitrixMainConfigConfiguration::wnc();.
Править параметры можно с помощью класса Configuration (BitrixMainConfigConfiguration).
Примечание: Некоторые секции файла настроек содержат параметр readonly. Этот параметр означает, что данные настройки не будут изменены через API.
Кроме этого настройки могут задаваться в файле .settings_extra.php. Базовый файл настроек содержит неизменные настройки, к которым есть API. Файл .settings_extra.php может содержать произвольный код, который меняет настройки динамически. Соответственно к нему нет API.
Описание параметров |
Ниже описаны параметры, которые возможны для изменения:
Секция cache
Отвечает за настройки кеширования, позволяет задать способ кеширования и его параметры.
|
До версии 18.5.200 действовал такой формат записи: |
|---|
В версии 18.5.200 формат записи был изменён одновременно с возможностью использовать в кешировании Redis. Оба формата на данный момент работоспособны, но вендор настойчиво рекомендует использовать новый вариант записи.
|
Примеры нового формата записи для разных способов кеширования. |
|---|
| Параметр | Значение |
| type | В качестве значения можно задать:
или указать массив со значениями:
|
| cache_flags | Запрет на кеширование выборки или изменение ttl. Для этого установите ключи, куда входит название таблицы и суффиксы:
'cache_flags'=> array(
'value'=> array(
"b_group_max_ttl" => 200,
"b_group_min_ttl" => 100,
)
),
Устанавливая |
Примечание: Кроме type могут быть дополнительные параметры, если они нужны конкретному классу кеширования.
Примечание: Настройки memcache могут задаваться так же в файле /bitrix/.settings_extra.php.
|
Пример файла /bitrix/.settings_extra.php |
|---|
В базовом файле .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,
),
| Параметр | Значение |
| debug | Ключ отвечает за то, будет ли выведена ошибка на страницу в браузере. Выводить ошибки рекомендуется только на время разработки или отладки. Иначе потенциально может быть разглашение информации. |
| handled_errors_types | В ключе задаются типы ошибок, которые система отлавливает (не игнорирует). |
| exception_errors_types | В ключе задаются типы ошибок, при которых система выбрасывает исключение. |
| ignore_silence | Ключ отменяет действие оператора управления ошибками (@). |
| log | В ключе задаются параметры логирования ошибок. Если ключа нет — логирования не будет. Если задать как показано в примере:
'log' => array (
'settings' => array (
'file' => 'bitrix/modules/error.log',
'log_size' => 1000000,
),
),
то логироваться будет в файл с ограничением его размера. Если в корне сайта лежит файл error.php и выключен вывод ошибок на экран, то этот файл будет подключен в случае возникновения необработанного исключения. Если задать в общем случае, то можно логировать куда угодно: 'log' => array(
'class_name' => 'MyLog', // custom log class, must extends ExceptionHandlerLog;
// can be omited, in this case default DiagFileExceptionHandlerLog will be used
'extension' => 'MyLogExt', // php extension, is used only with 'class_name'
'required_file' => 'modules/mylog.module/mylog.php' // included file, is used only with 'class_name'
'settings' => array( // any settings for 'class_name'
),
),
В приведенном примере:
|
| assertion_throws_exception | Включение поддержки команды assert. |
| assertion_error_type | В ключе задаются типы ошибок, для которых не верный assert выбрасывает исключение. |
В 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
Внимание! С версии главного модуля 20.900.0 ядро продукта не использует параметры соединения БД из файла dbconn.php, настройки читаются только из .settings.php.
Параметры соединения с базой данных и другими источниками данных. Задается имя класса и параметры соединения.
'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,
),
Внимание: Начиная с версии ядра 14.5.2 и выше возможно использование расширения mysqli.
'className' => '\Bitrix\Main\DB\MysqliConnection',
Также для этого в PHP должно быть установлено расширение mysqli, дополнительные проверки на наличие расширения не производятся! Включать mysqli нужно отдельно для старого (dbconn.php) и (.settings.php) ядра D7.
| Параметр | Значение |
| options | Задаются флаги постоянного соединения и отложенности соединения с базой. Например: Connection::PERSISTENT == 1 Connection::DEFERRED == 2 Можно записывать их комбинации с помощью битовых операций. Например 3 — это и PERSISTENT, и DEFERRED. |
| handlersocket | В ключе указывается, какое соединение использовать для чтения (ключ read). Необходимо создать подключение, где будут указаны класс, хост и порт. В примере кода выше установлен параметр read, у которого указано значение handlersocket. А ниже собственно описание для соединения handlersocket Традиционные ACID Базы данных в целом ряде задач затрудняют реализацию проектов. Для решения этих задач были предложены технологии NoSQL и HandlerSocket (в виде плагина к обычной MySQL). Подробнее… . |
| className | имя класса, в которой собственно реализуется работа с конкретным типом БД. |
| host | имя хоста, где находится база данных. можно указать с портом |
| database | имя базы |
| login | логин пользователя базы данных |
| password | пароль пользователя базы данных |
Корневая секция
В корневой секции размещаются настройки общего характера.
| Параметр | Значение |
| disable_iconv | Запрещает использование библиотеки iconv. Аналог константы BX_ICONV_DISABLE в старом ядре. |
| logger | Логгеры, реализующие интерфейс PSR-3. Подробнее… |
Секция pull
Эта секция реально нужна только для хостинг-партнеров (для автоматизации развертывания), для всех остальных рекомендуется использовать настройку через административный интерфейс.
|
Пример кода секции и таблица параметров |
|---|
Секция http_client_options
Секция задаёт опции по умолчанию для класса BitrixMainWebHttpClient.
| Параметр | Значение |
| redirect | по умолчанию true, производить редирект |
| redirectMax | максимальное число таких редиректов (по умолчанию 5) |
| waitResponse | если true, то — ожидание ответа (по умолчанию), в ином случае — сразу возврат ответа |
| socketTimeout | время ожидания ответа в секундах (по умолчанию 30) |
| streamTimeout | таймаут потока в секундах (по умолчанию 60) |
| version | версия http — 1.0 или 1.1 (по умолчанию 1.0) |
| proxyHost / proxyPort / proxyUser / proxyPassword | группа параметров для установки прокси |
| compress | если true, будет послан Accept-Encoding: gzip |
| charset | кодировка для тела объекта (используется в поле заголовка запроса Content-Type для POST и PUT) |
| disableSslVerification | если true, верификация ssl-сертификатов производиться не будет |
Пример настройки:
'http_client_options' =>
array (
'value' =>
array (
'redirect' => true,//делаем редиректы, если требуется
'redirectMax' => 10,//но не более 10
'version' => '1.1'//работаем по протоколу http 1.1
),
'readonly' => false,
),
Правильно ли вы указали настройки, можно проверить так:
use BitrixMainConfigConfiguration;
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-сервера отправителя и организовать разделение потоков отправки писем.
Список ссылок по теме:
- Пример скрипта для редактирования настроек. (блог)
Содержание
- [РЕШЕНО] При выполнении скрипта возникла ошибка. Включить расширенный вывод ошибок можно в файле настроек .settings.php
- .settings.php
- The script encountered an error and will be aborted. Не пойму что тут случилось.
[РЕШЕНО] При выполнении скрипта возникла ошибка. Включить расширенный вывод ошибок можно в файле настроек .settings.php
1. Включите вывод ошибок в файле /bitrix/.settings.php
2. Находим в разделе: ‘exception_handling’ =>
изменить:
‘debug’ => false,
на
‘debug’ => true,
и ‘log’ => NULL,
можно заменить на:
‘log’ => array (
‘settings’ =>
array (
‘file’ => ‘/var/log/php/exceptions.log’,
‘log_size’ => 1000000,
),
Решения:
1. Настройки — Инструменты — Проверка системы (/bitrix/admin/site_checker.php?lang=ru) Начать тестирование. Самый последний шаг — проверка бд. Если таблицы не существует, то он на нее пожалуется и возможно предложит автоматически восстановить.
Или на тестовой копии удалите модуль Интернет-магазин, с сохранением таблиц и настроек, а потом установите. Если ошибка пропадет, тоже самое на основной версии сайта можно сделать.
2. Закомментировать соответствующий код в файле bitrix/modules/sale/general/product.php
3. Пересоздать БД
DROP TABLE IF EXISTS `b_sale_product2product`;
CREATE TABLE `b_sale_product2product` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`PRODUCT_ID` int(11) NOT NULL,
`PARENT_PRODUCT_ID` int(11) NOT NULL,
`CNT` int(11) NOT NULL,
PRIMARY KEY (`ID`),
KEY `IXS_PRODUCT2PRODUCT_PRODUCT_ID` (`PRODUCT_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
ВАЖНО: Вам нужно обратить к системному администратору Сервера, чтобы понять как так БД просто исчезла.
Всем привет, тоже настигла учесть внезапного отсутствия доступа к карточкам товаров, настроив в положение true параметр debug стали читаться ошибки:
Warning: A non-numeric value encountered in аwww/zonasoblazna.ru/bitrix/modules/iblock/lib/propertyindex/storage.php on line 200
[ParseError]
syntax error, unexpected ‘data’ (T_STRING), expecting ‘]’ (0)
/www/zonasoblazna.ru/bitrix/components/fire/catalog.element/templates/
.default/template.php:79
#0: CBitrixComponentTemplate->__IncludePHPTemplate(array, array, string)
/www/zonasoblazna.ru/bitrix/modules/main/classes/general/ component_template.php:820
#1: CBitrixComponentTemplate->IncludeTemplate(array)
/www/zonasoblazna.ru/bitrix/modules/main/classes/general/
component.php:735
#2: CBitrixComponent->showComponentTemplate()
/www/zonasoblazna.ru/bitrix/modules/main/classes/general/
component.php:683
#3: CBitrixComponent->includeComponentTemplate()
/www/zonasoblazna.ru/bitrix/components/fire/catalog.element/
component.php:1203
#4: include(string)
/www/zonasoblazna.ru/bitrix/modules/main/classes/general/
component.php:594
#5: CBitrixComponent->__includeComponent()
/www/zonasoblazna.ru/bitrix/modules/main/classes/general/component.php:653
#6: CBitrixComponent->includeComponent(string, array, object)
/www/zonasoblazna.ru/bitrix/modules/main/classes/general/main.php:1038
#7: CAllMain->IncludeComponent(string, string, array, object)
/www/zonasoblazna.ru/bitrix/templates/.default/components/fire/catalog/template1
/element.php:140
#8: include(string)
/www/zonasoblazna.ru/bitrix/modules/main/classes/general/component_template.php:725
#9: CBitrixComponentTemplate->__IncludePHPTemplate(array, array, string)
/www/zonasoblazna.ru/bitrix/modules/main/classes/general/component_template.php:820
#10: CBitrixComponentTemplate->IncludeTemplate(array)
/www/zonasoblazna.ru/bitrix/modules/main/classes/general/component.php:735
#11: CBitrixComponent->showComponentTemplate()
/www/zonasoblazna.ru/bitrix/modules/main/classes/general/component.php:683
#12: CBitrixComponent->includeComponentTemplate(string)
/www/zonasoblazna.ru/bitrix/components/fire/catalog/component.php:154
#13: include(string)
/www/zonasoblazna.ru/bitrix/modules/main/classes/general/component.php:594
#14: CBitrixComponent->__includeComponent()
/www/zonasoblazna.ru/bitrix/modules/main/classes/general/component.php:653
#15: CBitrixComponent->includeComponent(string, array, boolean)
/www/zonasoblazna.ru/bitrix/modules/main/classes/general/main.php:1038
#16: CAllMain->IncludeComponent(string, string, array, boolean)
/www/zonasoblazna.ru/catalog/index.php:271
#17: include_once(string)
/www/zonasoblazna.ru/bitrix/modules/main/include/urlrewrite.php:159
#18: include_once(string)
/www/zonasoblazna.ru/bitrix/urlrewrite.php:2
Что с ними делать и почему они появились не пойму.
Источник
.settings.php
После последнего обновления на сайте появился файл с настройками .settings.php с которым происходит ряд непонятных вещей.
Может кто сталкивался уже и знает как с этим бороться:
1. файл сформировался, переносим сайт на рабочий хост (там база создается новая со своими параметрами) и после распаковки нужно идти в этот файл и ручками менять настройки базы. это номально?
2. есть самописные скрипты на основе API в частности создание заказа — теперь выдает При выполнении скрипта возникла ошибка. Включить расширенный вывод ошибок можно в файле настроек .settings.php
как его включить? если раньше достаточно в настройках главного модуля и в htaccess включить, то что теперь?
Блин. У меня тоже после последнего обновления, слетели карточки товаров.
Ни одна карточка не грузится.
Включить ошибки можно в файле /bitrix/.settings.php
У меня ошибка следующая:
[BitrixMainArgumentNullException]
Argument ‘moduleId’ is null or empty (100)
И что это значит?!
Как откатить последние обновления, кто-нибудь знает?
| Цитата |
|---|
| Юрий Рыков пишет: Включить ошибки можно в файле /bitrix/.settings.php |
Алексей Волков , может быть это Вам поможет разобраться.
У меня ошибка была из-за попытки загрузить компонент на странице карточки товара.
Компонент загружался так:
$APPLICATION->IncludeComponent(
«infospice.iwantpresent:iwantpresent», «», Array(
«CACHE_TYPE» => «A»,
«CACHE_TIME» => «3600»,
«CACHE_NOTES» => «»,
«ELEMENT_ID» => $arParams[«ELEMENT_ID»],
«PREFIX_TITLE» => «Я хочу в подарок»
), $component
);
Я так полагаю, что некорректный ELEMENT_ID передавался в компонент.
Сейчас времени нет разбираться, временно отключил вывод этого компонента на странице.
Скорее всего, изменился состав параметров в массиве $arParams.
А для простых смертных, кто вчера поставил битрикс с целою изучения и обновился сегодня, что делать нужно, чтобы данная ошибка не выскакивала?
Я на пример в насторики модуля Интернет-Магазина не могу попасть.
| Цитата |
|---|
| НастройкиПараметры весаАдрес магазинаПрава на заказыДоступ |
Настройка параметров модуля
[BitrixMainArgumentNullException] Argument ‘name’ is null or empty (100)#0: BitrixMainConfigOption::get(c:sale, null, null, false) /home/b/bekaa/bitrix.radioexpert.ru/public_html/bitrix/modules/main/classes/general/option.php:26#1: CAllOption::GetOptionString(c:sale, null, null) /home/b/bekaa/bitrix.radioexpert.ru/public_html/bitrix/modules/sale/options.php:418#2: include(«/home/b/bekaa/b. ale/options.php» (79)) /home/b/bekaa/bitrix.radioexpert.ru/public_html/bitrix/modules/main/admin/settings.php:50#3: require_once(«/home/b/bekaa/b. in/settings.php» (86)) /home/b/bekaa/bitrix.radioexpert.ru/public_html/bitrix/admin/settings.php:2
Коллеги, добрый день.
Прошу вас создать обращение в тех. поддержку, будем разбираться детальней http://dev.1c-bitrix.ru/support/index.php
я тоже создал тикет,
с первым вопросом сказали, что будет исправление, правда там выяснились еще баги — пока другие баги выясняем откуда
по 2 вопросу дали ответ, что это на стороне сайта сторонний модуль дает ошибку — странно, до обновления все работало, а тут вдруг дополнительные параметры не переданы в массив — буду разбираться может действительно там изначальный баг, но почему тогда работало.
В общем, скачал битрикс, обновился до последней версии и в насторики модуля Интернет-Магазин, не попасть
Битриск такой битрикс
| Цитата |
|---|
| jimmyco пишет: В общем, скачал битрикс, обновился до последней версии и в насторики модуля Интернет-Магазин, не попасть |
Битриск такой битрикс
Уточните, пожалуйста, какую редакцию вы скачали и на каком веб-окружении запустили сайт?
| Цитата |
|---|
| Oleg Strokatyy пишет: |
| Цитата |
|---|
| jimmyco пишет: В общем, скачал битрикс, обновился до последней версии и в насторики модуля Интернет-Магазин, не попасть |
Битриск такой битрикс
Уточните, пожалуйста, какую редакцию вы скачали и на каком веб-окружении запустили сайт?
Редакция малый бизнес
Запустил на хостинге, где до обновления все прекрасно работало.
У меня собственно резервная копия до обновления сохранилась, откатываюсь и в модуль можно зайти без проблем.
Рад буду помощи, ибо поддержка молчит.
Странно что погуглив, вот такая картина
Для чистоты эксперимента, снес все и поставил по новой, проверил, модуль работает.
Обновляюсь, не работает.
В редакции Бизнес, после обновления, все работает.
| Цитата |
|---|
| jimmyco пишет: Для чистоты эксперимента, снес все и поставил по новой, проверил, модуль работает. Обновляюсь, не работает. |
В редакции Бизнес, после обновления, все работает.
| Цитата |
|---|
| Oleg Strokatyy пишет: |
| Цитата |
|---|
| jimmyco пишет: Для чистоты эксперимента, снес все и поставил по новой, проверил, модуль работает. Обновляюсь, не работает. |
В редакции Бизнес, после обновления, все работает.
Благодарю вас, ошибку воспроизвели. Скоро будет фикс.
Благодарю за помощь.
Игорь Караченцев , добрый день.
Да, Игорь, это наше досадное упущение. Фикс данной ошибки будет в ближайшем обновлении ядра. Пока же рекомендую вам обратиться в нашу тех. поддержку.
Источник
The script encountered an error and will be aborted. Не пойму что тут случилось.
| Цитата |
|---|
| Николай Ефремов пишет: Словил такую же проблему на BitrixVA 4.3 после аварийной перезагрузки хостовой операционки. Проблема заключается в том, что подключиться к mysql никак нельзя: |
Многочисленные решения в инете предлагают проверить правильность указания сокета, но решение оказалось таким — сначала удалить/переименовать mysqld.sock, затем уже запускать/перезапускать демон.
Проблему удалось решить: в файле /bitrix/settings.php есть код:
array (
‘value’ =>
array (
‘default’ =>
array (
‘className’ => ‘\Bitrix\Main\DB\MysqlConnection’,
‘host’ => ‘localhost’,
‘database’ => ‘db’,
‘login’ => ‘login’,
‘password’ => ‘pass’,
‘options’ => 2,
),
),
‘readonly’ => true,
),
);
Нужно прописать доступы к базе данных( из dbconn.php) При переносе сайта с одного хостинга на другой резервной копией, старый restore.php не прописал здесь эти параметры сам.
Ели беда вызвана экстренной перезагрузкой BitrixVA
то беда решается довольно просто
нужно зайти под рутом — и выполнить следующие действия
mc
в нем идем по пути и удаляем файл
/var/lib/mysqld/mysqld.sock
после удаления выйти из mc и выполнить команды
sudo mkfifo /var/lib/mysqld/mysqld.sock
sudo chown -R mysql/var/lib/mysqld/
и после перезагрузить сервер нормальным методом например используя комануд reboot
| Цитата |
|---|
| Владислав Пасюк пишет: Карточка партнера Наш сайт |
| Цитата |
|---|
| Владимир Сергеев пишет: Mysql connect error: Can’t connect to local MySQL server through socket ‘/var/lib/mysqld/mysqld.sock’ |
Всем привет. Столкнулся с данной проблемой при переносе сайта с одного сервера на другой.
Данные в dbconn и .settings — одинаковые.
Версия BitrixENV — 4.3 (на предыдущем сервере стояла 4.2).
Соединение с базой работает — phpmyadmin работает, тестовые скрипты подключения к базе тоже работают.
bitrix_server_test.php ошибок не выдал — при указании параметров подключения к базе, подключился без проблем.
В тупике, не знаю уже куда смотреть и что делать. Подскажите, пожалуйста.
| Цитата |
|---|
| Сергей Болбат пишет: Всем привет. Столкнулся с данной проблемой при переносе сайта с одного сервера на другой. Данные в dbconn и .settings — одинаковые. Версия BitrixENV — 4.3 (на предыдущем сервере стояла 4.2). Соединение с базой работает — phpmyadmin работает, тестовые скрипты подключения к базе тоже работают. bitrix_server_test.php ошибок не выдал — при указании параметров подключения к базе, подключился без проблем. |
В тупике, не знаю уже куда смотреть и что делать. Подскажите, пожалуйста.
Выведите ошибку в браузер, установив (см. рис.) в файле /bitrix/.settings.php и скиньте сюда.
| Цитата |
|---|
| Антон Кучковский пишет: |
| Цитата |
|---|
| Сергей Болбат пишет: Всем привет. Столкнулся с данной проблемой при переносе сайта с одного сервера на другой. Данные в dbconn и .settings — одинаковые. Версия BitrixENV — 4.3 (на предыдущем сервере стояла 4.2). Соединение с базой работает — phpmyadmin работает, тестовые скрипты подключения к базе тоже работают. bitrix_server_test.php ошибок не выдал — при указании параметров подключения к базе, подключился без проблем. |
В тупике, не знаю уже куда смотреть и что делать. Подскажите, пожалуйста.
Выведите ошибку в браузер, установив (см. рис.) в файле /bitrix/.settings.php и скиньте сюда.
Удалите папки /cache/ и /managed_cache/ в папке /bitrix/
Должен выводить ошибку, если пишет To view extended error messages, enable this feature in .settings.php.»
И перезагрузите в консоли по SSH MySQL
| Цитата |
|---|
| Антон Кучковский пишет: Удалите папки /cache/ и /managed_cache/ в папке /bitrix/ Должен выводить ошибку, если пишет To view extended error messages, enable this feature in .settings.php.» |
И перезагрузите в консоли по SSH MySQL
| Цитата |
|---|
| Сергей Болбат пишет: |
| Цитата |
|---|
| Антон Кучковский пишет: Удалите папки /cache/ и /managed_cache/ в папке /bitrix/ Должен выводить ошибку, если пишет To view extended error messages, enable this feature in .settings.php.» |
И перезагрузите в консоли по SSH MySQL
Нет таких директорий. Только /wsdl_server/php-wsdl-2.3/cache.
MySQL перезапускал неоднократно — эффекта нет. Пробовал, кстати, и отключить его — то же самое. То есть как будто не видит MySQL-сервер вообще.
| Цитата |
|---|
| Антон Кучковский пишет: А IP проверяли? Может на другой сайт глядите, на старый, а правите на новом?)) |
Конечно проверял Новый сайт настраиваю с добавлением нужной строчки в hosts.
Не /bitrix/, а /bitrix/cache и /bitrix/managed_cache нету.
| Цитата |
|---|
| Сергей Болбат пишет: |
| Цитата |
|---|
| Антон Кучковский пишет: А IP проверяли? Может на другой сайт глядите, на старый, а правите на новом?)) |
Конечно проверял Новый сайт настраиваю с добавлением нужной строчки в hosts.
Не /bitrix/, а /bitrix/cache и /bitrix/managed_cache нету.
Не может быть такого, чтобы не было папки /bitrix/ )))))
/wsdl_server/php-wsdl-2.3/ — это какая-то системная папка сервера скорее всего, либо многосайтовость так настроена, что сам битрикс в другой папке лежит, а это публичка другого сайта.
Скиньте скрин дерева папок, где смотрите.
Смотрите. Ситуация. Вы правите файл, а ситуация не изменяется, значит в другом месте лежат файлы ядра.
Еще может быть так ,как у меня было.
Хостер, когда мухлевал, Каюга. Перенес файлы моего сайта на другой сервер и переключил на него, а я, получилось, что правил файлы на старом месте, и никаких изменений не происходило.
+ Еще обязательно сбросьте кеш браузера Ctrl + F5, если меняли IP сайта в файле hosts. Либо еще сервер на строен не на ту папку и по тому домену, который вы перенаправляете на новый IP, не может найти сайт на сервере.
| Цитата |
|---|
| Антон Кучковский пишет: |
| Цитата |
|---|
| Сергей Болбат пишет: |
| Цитата |
|---|
| Антон Кучковский пишет: А IP проверяли? Может на другой сайт глядите, на старый, а правите на новом?)) |
Конечно проверял Новый сайт настраиваю с добавлением нужной строчки в hosts.
Не /bitrix/, а /bitrix/cache и /bitrix/managed_cache нету.
Не может быть такого, чтобы не было папки /bitrix/ )))))
/wsdl_server/php-wsdl-2.3/ — это какая-то системная папка сервера скорее всего, либо многосайтовость так настроена, что сам битрикс в другой папке лежит, а это публичка другого сайта.
Скиньте скрин дерева папок, где смотрите.
Смотрите. Ситуация. Вы правите файл, а ситуация не изменяется, значит в другом месте лежат файлы ядра.
Еще может быть так ,как у меня было.
Хостер, когда мухлевал, Каюга. Перенес файлы моего сайта на другой сервер и переключил на него, а я, получилось, что правил файлы на старом месте, и никаких изменений не происходило.
Источник
Bitrix Framework имеет ряд специфичных настроек ядра, которые не имеют визуального интерфейса редактирования. Этот подход вызван тем, что изменение настроек или ошибка в них легко могут привести к неработоспособности системы (настройки подключения к базе данных, настройки кеширования и т.д.).
Настройки в новом ядре выполняются в файле /bitrix/.settings.php. В старом ядре аналогичные настройки выполнялись в файле /bitrix/php_interface/dbconn.php. Файл .settings.php структурно сильно отличается от прежнего dbconn.php.
В Битрикс параллельно используются 2 ядра — старое и новое, соответственно, оба файла настроек используются одновременно. Поэтому необходимо производить настройки обоих файлов.
Даже если используется код только старого ядра, то файл .settings.php должен быть создан. Возможна ситуация, когда при установке обновлений какой-то из встроенных механизмов системы будет переписан на новое ядро. Если этот файл корректно не настроен, то это может привести к неработоспособности системы.
Иногда бывают ситуации, что файл .settings.php отсутствует. Его можно создать в автоматическом режиме, если выполнить в командной строке:
BitrixMainConfigConfiguration::wnc();
Если на экране появилась ошибка
При выполнении скрипта возникла ошибка. Включить расширенный вывод ошибок можно в файле настроек .settings.php
то открываем файл .settings.php
'exception_handling' => array ( 'value' => array ( 'debug' => false, // изменяем значение на true 'handled_errors_types' => 20853, 'exception_errors_types' => 20853, 'ignore_silence' => false, 'assertion_throws_exception' => true, 'assertion_error_type' => 256, 'log' => array ( 'settings' => array ( 'file' => NULL, 'log_size' => NULL, ), ), ), 'readonly' => false, ),
находим debug и заменяем false на true. В результате чего на экране будет подробное описание ошибки:
[Error]
Class 'Assets' not found (0)
D:worklocalhost11wwwlocaltemplatesvoguis_indexheader.php:17
#0: include_once
D:worklocalhost11wwwbitrixmodulesmainincludeprolog_after.php:96
#1: require(string)
D:worklocalhost11wwwbitrixmodulesmainincludeprolog.php:11
#2: require_once(string)
D:worklocalhost11wwwbitrixheader.php:1
#3: require(string)
D:worklocalhost11wwwindex.php:2
Поиск:
.settings.php • CMS • PHP • Web-разработка • Битрикс • Ошибка • .settings.php • dbconn.php • debug • Настройка • Ядро
Каталог оборудования
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Производители
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Функциональные группы
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
На чтение 4 мин. Просмотров 1.2k. Опубликовано 15.12.2019
Уведомление об ошибке в админке битрикс, или непосредственно в визуальной его части. При выполнении скрипта возникла ошибка.
Это уведомление, я назову это именно так — уведомление, т.к. мы еще не знаем в чем же дело, битрикс нас просто информирует о том, что при выполнении скрипта возникла ошибка, не более того.
Итак рассмотрим по порядку:
Содержание
- Почему может появиться это уведомление?
- Что делать, если появляется сообщение «при выполнении скрипта возникла ошибка»?
- Как в битрикс включить вывод ошибок?
- Методы выявление ошибки
- Основные причины появления белого экрана
Почему может появиться это уведомление?
- Если уведомление появляется при разработке в публичной части сайта, то это однозначно ошибка в скрипте, вызвана, к примеру, ошибкой в синтаксисе в файле шаблона или в init.php, использованием функции, которая отсутствует и т.п.
- Если уведомление появляется в админке сайта, то это может быть вызвано ошибками, к примеру, в init.php или ошибками в ядре битрикса, которые обусловлены не той версией php. Это могло произойти, если битрикс у вас давно не обновлялся и при этом вы изменили версию php на, к примеру, php 7.1.
Теперь рассмотрим пути решения этой проблемы.
Что делать, если появляется сообщение «при выполнении скрипта возникла ошибка»?
Прежде всего необходимо включить вывод ошибок и предупреждений и посмотреть где у нас проблема.
Как в битрикс включить вывод ошибок?
Для старого ядра включить вывод ошибок можно в файле dbconn.php:
Чтобы в битрикс включить вывод ошибок для нового ядра D7 необходимо в файле .settings.php поставить значение debug => true:
Сейчас, наверное, уже сложно встретить сайты только на старом ядре, поэтому включать вывод ошибок в битрикс можно только в файле .settings.php
После устранения всех ошибок не забываем отключать вывод ошибок, пользователю не нужно их видеть, если вдруг что-нибудь еще всплывет. Всем удачи и успехов в работе!
Порой на сайте разработанном на 1с Битрикс вместо контента появляется белый экран. Были случаи появления чистого экрана после авторизации в админке.
Методы выявление ошибки
1. В файле .htaccess включаем вывод ошибок:
2. В файле /bitrix/php_interface/dbconn.php :
3. Смотреть лог ошибок (error log) веб-сервера (апач, файл error_log ).
4. В файле /bitrix/.settings.php установить
5. Проверить содержимое переменной $_SERVER[«DOCUMENT_ROOT»] . Там должен быть установлен корректный путь, иначе не подключаются файлы системы.
6. Запустить скрипт проверки системы на соответствия требованиям для стабильной работы 1с Битрикс bitrix_server_test.php
Основные причины появления белого экрана
- Кривое редактирование /bitrix/php_interface/init.php : ошибки, лишний пробел после ?>
- Такая же проблема с белым экраном возникла после переноса на другой сервер.
- Проверить настройку PHP — short_open_tag , которая должна быть в On.
- Не хватает оперативной памяти( memory_limit по умолчанию 128). Проблема решается следующим образом. Заходим в /bitrix/php_interface/dbconn.php . Редактируем ini_set(«memory_limit», «512M»);
Если вы сталкивались с этой проблемой пишите в комментариях, как её решили.
Если у вас на сайте произошла ошибка, но она не отображается и выводиться надпись о том, что ошибки нужно включить в файле .settings.php, то значит они у вас отключены в этом файле. 
Включить их просто, для этого надо собственно открыть этот файл по FTP или через функционал Битрикс по следующему пути в админке битрикс
Рабочий стол->Контент->Структура сайта->Файлы и папки->bitrix
Здесь представлен многомерный массив данных, ключ-значение. Это основные настройки вашего сайта на битриксе.
Что бы включить отображение ошибок находим строку ‘debug’ которая находится внутри ‘exception_handling’->’value’ и ставим ей значение true вместо false.
Что бы настроить какие именно ошибки мы хотим отображать в ключе ‘exception_errors_types’ указываем код ошибок, например 29687, но он мало понятен, поэтому лучше использовать в значение данного ключа константы через пробел:
E_DEPRECATED,
Здесь мы перечислили все ошибки, предупредения и тд. Если нужно вывести только ошибки, то остальные константы можно просто убрать, поскольку уведомление
Bitrix(d7). File .settings.php API
Настройки могут задаваться в файле .settings.php и .settings_extra.php. Базовый файл настроек содержит неизменные настройки,
к которым есть API. Файл .settings_extra.php может содержать произвольный код, который меняет настройки динамически.
Соответственно к нему нет API.
Кодировка
Пример:
/*Отвечает за кодиорвку*/ 'utf_mode' => array ( 'value' => true, 'readonly' => true, ),
readonly— ключ означает, что нельзя изменить значение через API.value—true, если используетсяutfиfalseв обратном случае.
Если задана другая кодировка (не UTF-8):
/*Отвечает за кодиорвку*/ 'utf_mode' => array ( 'value' => false, 'readonly' => true, ),
value—false, то есть не используется UTF-8
/*Отвечает за кодиорвку по умолчанию*/ 'default_charset' => array ( 'value' => 'cp866', 'readonly' => false, ),
value— указание кодировки по умолчанию
Кэширование
Пример:
/*Отвечает за кэширование*/ 'cache' => array ( 'value' => array ( 'type' => 'memcache', /*memcache, apc, xcache, files, none*/ 'sid' => '', 'memcache' => array ( 'host' => '127.0.0.1', ), ), 'readonly' => false, ),
- Подробнее о настройке кэширвоания
- Подробнее о подключении собственного типа кэширвоания
Так же доступных специальные флаги для кэширования опций модулей:
/*Время кэширования в секундах*/ 'cache_flags' => array ( 'value' => array ( 'config_options' => 3600, 'site_domain' => 3600, ), 'readonly' => false, ),
readonly— ключ означает, что нельзя изменить значение через API.site_domain— Время кэширования куки в секундахconfig_options— Время кэширования опций модулей в секундах
Обработка ошибок
Пример:
'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, ),
readonlyключ означает, что нельзя изменить значение через API.debug— Ключ отвечает за то, будет ли выведена ошибка на страницу в браузере.handled_errors_types— Tипы ошибок, которые система отлавливает.exception_errors_types— Типы ошибок, при которых система выбрасывает исключение.ignore_silence— Ключ отменяет действие оператора управления ошибками (@).log— В ключе задаются параметры логирования ошибок.assertion_throws_exception— Включить поддержку assertassertion_error_type— Какие типы ошибок обрабатывать для assert
Если в корне сайта лежит файл error.php и выключен вывод ошибок на экран, то этот файл будет подключен в случае возникновения необработанного исключения.
Логирование
Пример:
'log' => array ( 'settings' => array ( 'file' => 'bitrix/modules/error.log', 'log_size' => 1000000, ), ),
readonlyключ означает, что нельзя изменить значение через API.file— Путь к файлу лога относительно корневой папки сайта.log_size— Максимальный размер файла лога в байтах.
Пример:
'log' => array( 'class_name' => 'MyLog', 'extension' => 'MyLogExt', 'required_file' => 'modules/mylog.module/mylog.php' 'settings' => array( ), ),
class_name— Имя класса (с указанием namespace).extension— PHP расширение необходимое для исползования.required_file— Файл, который необходим дляиспользования (например автозагрузка).settings— массив настроек.
Пример использования своего собственного логера (в качестве примера взят monolog-adapter):
return array( 'exception_handling' => array( 'value' => array( 'log' => array( 'class_name' => 'BexMonologExceptionHandlerLog', 'settings' => array( 'logger' => 'app' ), ), ), 'readonly' => false ), 'monolog' => array( 'value' => array( 'handlers' => array( 'default' => array( 'class' => 'MonologHandlerStreamHandler', 'level' => 'DEBUG', 'stream' => '/path/to/logs/app.log' ), 'feedback_event_log' => array( 'class' => 'BexMonologHandlerBitrixHandler', 'level' => 'DEBUG', 'event' => 'TYPE_FOR_EVENT_LOG', 'module' => 'vendor.module' ), ), 'loggers' => array( 'app' => array( 'handlers'=> array('default'), ), 'feedback' => array( 'handlers'=> array('feedback_event_log'), ) ) ), 'readonly' => false ) );
- Подробнее об адаптере для одной из самых мощных и популярных библиотек для логирования (для 1С-Битрикс)
- Подробнее библиотеке Monolog
Соединения с базами данных
/*Отвечает за соединения с базами данных*/ 'connections' => array ( 'value' => array ( 'default' => array ( 'className' => '\Bitrix\Main\DB\MysqlConnection', 'host' => '', 'database' => '', 'login' => '', 'password' => '', 'options' => 2, 'handlersocket' => array ( 'read' => 'fast' ), ), ), 'fast' => array ( 'className' => 'BitrixNameDataHsphpReadConnection', 'host' => 'localhost:31006', ), 'readonly' => true, ),
readonlyключ означает, что нельзя изменить значение через API.className— имя класса, которое отвечает за работу с базой данных.host— хост, для соединения с базой данныхdatabase— имя базы данныхpassword— пароль к базе данныхhandlersocket— указывается какое соединение использовать. Необходимо создать подключение, где будут указаны класс и хостoptions— параметры соединения, например 1 — постоянное соединение, 2 — простое соединение, 3 — это оба:
'options' => ((!defined("DBPersistent") || DBPersistent) ? 1 : 0) | ((defined("DELAY_DB_CONNECT") && DELAY_DB_CONNECT === true) ? 2 : 0)
Обычное соединение устанавливается каждый раз во время выполнения страницы при первом обращении к базе данных. Установленное соединение освобождается (в большинстве случаев и закрывается) после завершения страницы.
Постоянное соединение (функции PHP обычно называются *_pconnect) устанавливается один раз при первом обращении к базе данных и при повторных обращениях, даже из других страниц, используются уже открытые соединения к базе данных.
default — база данных используемая по умолчанию, можно задать несколько соединений с базами данных, затем использовать в проекте разные соединения.
Рекомендуется вместо \Bitrix\Main\DB\MysqlConnection использовать \Bitrix\Main\DB\MysqliConnection
Обращение к другим соединениям с базами данных:
/* connection_name - имя соединения, указанное в .settings.php. /* Bitrix использует соединение по умолчанию default */ $connection = BitrixMainApplication::getConnection('connection_name');
Подробнее о базах данных в 1С — Битрикс
Дополнительно
/*Отключение сброса кэша, для решения некоторых проблем с php Zend Optimizer+*/ 'no_accelerator_reset' => array ( 'value' => false, 'readonly' => false, ),
Применение данной настрйоки я не нашёл за исключением решения проблем с php Zend Optimizer+
/*Установка константы BX_HTTP_STATUS используется в Configuration::wnc*/ 'http_status' => array ( 'value' => true, 'readonly' => false, ),
Применение данной настройки находится в методе, который формирует файл .settings.php (Configuration::wnc), так же в фигуриует в методе CHTTP:SetStatus()
Ссылки по теме
Bitrix
- Документация
- Скрипт для настроек
- Базы данных
Bitrix-expert
- «Битрикс» и PSR-3
Bxapi.ru
- BitrixMainConfigConfiguration
- BitrixMainConfigConfiguration::getInstance()
- BitrixMainConfigConfiguration::get()
- BitrixMainConfigConfiguration::add()
- BitrixMainConfigConfiguration::saveConfiguration()
Git
- Monolog adapter for Bitrix CMS
- Подробнее библиотеке Monolog
PHP
- extension_loaded


