Сложность урока:
1 уровень — интуитивно все понятно из интерфейса, но почитать стоит.
1 из 5
Дата изменения:
23.02.2023
Просмотров:
23179
Недоступно в лицензиях:
Текущую редакцию Вашего 1С-Битрикс можно просмотреть на странице Обновление платформы (Marketplace > Обновление платформы).
Ограничений нет
Настройки
На странице Монитор производительности: настройки PHP (Настройки > Производительность > PHP) отображается сводная таблица Параметры окружения с анализом параметров PHP.
С помощью ссылки Настройки PHP можно перейти на страницу с подробной информацией о PHP (phpinfo).
Ошибки
На странице Монитор производительности: журнал ошибок PHP (Настройки > Производительность > Ошибки PHP (N)) можно просмотреть журнал регистрации ошибок PHP, где N — общее количество ошибок.
Примечание: Данная страница отображается, только если в настройках модуля Монитор производительности указана опция Вести журнал предупреждений PHP.
Журнал ошибок PHP ошибок хранится в базе. Удалить журнал ошибок PHP можно с помощью опции
Удалить собранные ранее данные
Доступна только при отключенном мониторе
в настройках модуля Монитор производительности.
Основное предназначение модуля — быстрое оповещение о случивших на сайте проблемах. Для этого существуют сервисы (агенты), следящие за ошибками (чтение изменений в логах, прямой отлов ошибок в PHP), и сервисы, отправляющие оповещения на e-mail, либо в браузер доверенному лицу.
Для экономии места и удобства работы записываются только уникальные ошибки. У них обновляются дата последнего возникновения и количество повторов.
Данные из логов собираются в одном хранилище, у которого есть живая лента со звуковым оповещением о новых событиях.
Сохраняемые данные
Поле | |
---|---|
Дата первого возникновения | Микросекунды с 1.1.1970 Т.к. пишутся только уникальные ошибки, чтобы понять очередность их возниковения, время пишется в микросекундах |
Дата последнего возникновения | Микросекунды с 1.1.1970. |
Число повторов | Сколько раз наблюдалась ошибка. |
Тип (уровень) | Warning, notice etc. |
Ошибка (сообщение) | Содержимое ошибки, сама запись. |
Трейс | При наличии. |
Игнорировать | Отправлять ли оповещения о данной ошибке или нет. |
Поиск по логам
Поиск можно делать по полям: дата последнего возникновения, тип ошибки, текст ошибки, источник (по данным из какого файла искать).
Если заполнены все поля, запрос поиска можно представить так:
SELECT * FROM `logs`
WHERE
`last_date` >= $lastDate
AND `type` IN ("@type1","@type2")
AND (`message` LIKE "%$text%" OR `trace` LIKE "%$text%")
AND `file_id` IN (@fileId1, @fileId2)
При включенном автообновлении значения из фильтра влияют на оповещение о новых события, если у вас в фильтре указано отображать только фатальные ошибки, то в живой ленте будут только фатальные ошибки, другие ошибки вы не увидите, даже если они происходят.
Это удобно использовать при отладке кода, например, всегда ли есть значения массивов по ключам. Включает фильтр на NOTICE, и гоняем свой скрипт, ожидая новые оповещения о NOTICE.
Подключение обработчика ошибок PHP
Используется стандартный механизм Битрикс. Логгер будет вызван функциями set_error_handler,
set_exception_handler, register_shutdown_function
Чтобы подключить логгер нужно прописать настройки в файле bitrix/.settings.php
в секции exception_handling
'exception_handling' => array(
'value' => array(
'debug' => false,
'handled_errors_types' => E_ALL & ~E_NOTICE & ~E_WARNING & ~E_STRICT & ~E_USER_WARNING & ~E_USER_NOTICE & ~E_COMPILE_WARNING & ~E_DEPRECATED,
'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(
'class_name' => 'BxSolAchtungProExceptionsHandlerLogger',
'required_file' => 'modules/bxsol.achtungpro/lib/ExceptionsHandler/Logger.php',
//либо
'required_file' => 'modules/bxsol.achtungpro/lib/ExceptionsHandler/LoggerOld.php',
),
),
'readonly' => false
),
Битрикс меняли формат ExceptionsHandler
, поэтому реализовано 2 варианта логгера, точные настройки есть на странице настройки модуля. Читать подробнее об обработке ошибок в Битрикс.
Чтение файлов логов
В настройках модуля нужно просто указать абсолютный путь к файлу. Поддерживаемые типы: PHP Error log, TimeWeb error log, Apache error log.
Форматы лог файлов
Php error log
[29-May-2016 22:32:39 Europe/Moscow] PHP Fatal error: error message
Apache Error log
[29-May-2016 22:32:39 Europe/Moscow] [php fatal error] error message
Time Web Error Log
[Mon May 02 07:23:29 2016] [error] [client **.***.**.**] Error_Type Error_Message
Ведется работа над чтением логов любого формата.
Скрипт считывает только новые данные, с того места, где остановился в прошлый раз. Но если файл был очищен, и в него добавились новые записи, все они будут учтены.
Агенты
Крайне рекомендуем поставить в cron запуск агентов анализа файлов и отправки оповещений. Если у вас сейчас агенты выполняются на клиентах, это снизит нагрузку и добавит стабильности.
А если агенты уже выполняются на кроне, то защитит от неисправности агентов других модулей.
Агент анализа файлов:
[АБСОЛЮТНЫЙ_ПУТЬ_НА_СЕРВЕРЕ]/bitrix/modules/bxsol.achtungpro/cron/FilesListener.php
Агент отправки писем:
[АБСОЛЮТНЫЙ_ПУТЬ_НА_СЕРВЕРЕ]/bitrix/modules/bxsol.achtungpro/cron/EmailSender.php
В данных файлах требуется указать значение переменной $_SERVER['DOCUMENT_ROOT']
Логгер для разработчиков
Вместе с модулем поставляется логгер, который можно легко использовать для своих нужд. Например, отправлять оповещения, что выгрузка в Яндекс.Маркет прошла успешна, либо наоборот.
При этом вы получите уведомление на почту или сразу в браузер, если в данный момент находитесь сайте. Держите процессы на сайте под полным контролем!
use BxSolAchtungProLogger;
CModule::IncludeModule('bxsol.achtungpro');
Logger::info('Yandex market uploading done');
Если нет желания запускать полную инициализацию модуля, достаточно подключить файл логгера.
use BxSolAchtungProLogger;
require_once $_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/bxsol.achtungpro/lib/Logger.php';
Logger::info('Yandex market uploading done');
Впрочем для аккаунта разработчика модуль подключается всегда, т.к. отпраляются оповещения в браузер об ошибках.
Общий синтаксис
class Logger
{
...
/**
* @param string $message - сообщение
* @param string $type - уровень (notice, warning)
* @param bool $withTrace - записывать трейс или нет. Причем вызов логгера будет удалён из трейса.
*/
public static function log($message, $type, $withTrace = true)
...
}
Чтобы не указывать тип или необходимость трейса, и для лучшей читаемости кода, существуют функции краткого вызова.
Функции краткого вызова
Вызов | Тип | Трейс |
---|---|---|
Logger::crit($message) | CRIT | Всегда |
Logger::debug($message, $withTrace = true) | DEBUG | По умолчанию есть |
Logger::deprecated($message, $withTrace = true) | DEPRECATED | По умолчанию есть |
Logger::fatal($message) | FATAL | Всегда |
Logger::info($message, $withTrace = false) | INFO | По умолчанию нет |
Logger::notice($message, $withTrace = true) | NOTICE | По умолчанию есть |
Logger::strict($message, $withTrace = true) | STRICT | По умолчанию есть |
Logger::warning($message, $withTrace = true) | WARNING | По умолчанию есть |
Альтернативные события
Вызов | Тип | Трейс |
---|---|---|
Logger::miracle($message, $withTrace = true) | MIRACLE | По умолчанию есть |
Logger::shit($message, $withTrace = true) | SHIT_HAPPENS | По умолчанию есть |
Logger::vovaPomogi($message) | VOVA_POMOGI | Всегда |
Полный список возможных типов (уровней) ошибок
Ошибки с кратким вызовом (Logger::info() и т.д.):
- Logger::CRIT
- Logger::DEBUG
- Logger::DEPRECATED
- Logger::FATAL
- Logger::INFO
- Logger::NOTICE
- Logger::INFO
- Logger::MIRACLE
- Logger::SHIT_HAPPENS
- Logger::VOVA_POMOGI
Остальные типы:
- Logger::ALL
- Logger::COMPILE_ERROR
- Logger::COMPILE_WARNING
- Logger::CORE_ERROR
- Logger::CORE_WARNING
- Logger::DB_ERROR
- Logger::ERROR
- Logger::PARSE
- Logger::RECOVERABLE_ERROR
- Logger::UNCATCHABLE_EXCEPTION
- Logger::USER_DEPRECATED
- Logger::USER_ERROR
- Logger::USER_NOTICE
- Logger::USER_WARNING
1. Создаю в корне сайта файл error.php со следующим содержимым:
<?php
echo show_me_error;
?>
2. Открываю в браузере site.ru/error.php — белый экран
3. Смотрю bitrix/php_interface/dbconn.php:
$DBDebug = true;
4. Смотрю bitrix/php_interface/.settings.php:
...
array (
'value' =>
array (
'debug' => true,
'handled_errors_types' => E_ALL & ~E_NOTICE & ~E_STRICT & ~E_USER_NOTICE & ~E_DEPRECATED,
'exception_errors_types' => E_ALL & ~E_NOTICE & ~E_WARNING & ~E_STRICT & ~E_USER_WARNING & ~E_USER_NOTICE & ~E_COMPILE_WARNING,
'ignore_silence' => true,
'assertion_throws_exception' => false,
'assertion_error_type' => 256,
'log' => array (
'settings' => array (
'file' => 'bitrix/modules/error.log',
'log_size' => 1000000,
),
),
),
'readonly' => false,
),
...
5. Смотрю bitrix/modules/error.log — кучу левых Warning, однако моей ошибки в моём error.php нет
6. Иду в .htaccess:
php_value display_errors 1
php_value error_reporting 7
7. Иду на сервере в /var/log/nginx/error.log — то же самое, ничего о моей ошибке
Как мне на экране при открытии error.php увидеть мою ошибку?
Объяснять, что такое логи — нет необходимости. Когда есть логи, то проще разобраться с возникшими проблемами и выяснить, почему они начались. Основные моменты в использовании логов.
Логи не должны занимать всё свободное пространство на диске, т.е. в логи нужно помещать только нужную информацию, а не всё подряд. Устаревшие логи должны удаляться. Для удаления устаревших логов лучше всего настроить задание на cron.
Логи должны быть удобными для изучения — логи с ошибками и логи с диагностическими данными должны помещаться в разные файлы. Желательно разделять логи на временные интервалы — например, ежедневные логи (наиболее распространенный вариант, или, например, по месяцам, или неделям).
Все логи нужно держать в одной папке, чтобы было удобней их изучать (/logs/, /_logs/, /local/logs/ и т.п. ). В целях защиты следует закрыть доступ к папке с логами по http — настраивается в .htacces,
deny from all
и/или добавить к названию файла уникальный идентификатор.
Папку для логов надо предварительно создать и убедиться, что битрикс (веб-сервер) имеет права на запись в нее.
В системе 1С-Битрикс существует 2 вида логов:
ADDMESSAGE2LOG(…)
Это функция из старого ядра. Многие модули пишут через нее отладочную информацию.
Пример настройки места хранения логов, выводимых данной функцией, выглядит так (папка logs/bx должна быть создана):
define("LOG_FILENAME", $_SERVER["DOCUMENT_ROOT"] . "/logs/bx/" . date("Y-m-d") . ".log");
Прописать данную настройку можно, например, в dbconn.php.
СЕКЦИЯ EXCEPTION_HANDLING В ФАЙЛЕ .SETTINGS.PHP
Это уже функционал нового ядра D7.
Битрикс через данный функционал пишет информацию обо всех ошибках и исключениях. Что именно пишется — зависит от настроек.
Пример настройки логов с разделением по дате:
'exception_handling' => array ( 'value' => array ( 'debug' => false, // disables error output to screen // ошибки для вывода в лог 'handled_errors_types' => E_ALL & ~E_NOTICE & ~E_STRICT & ~E_WARNING, 'exception_errors_types' => E_ALL & ~E_NOTICE & ~E_WARNING & ~E_STRICT & ~E_COMPILE_WARNING, 'ignore_silence' => true, 'assertion_throws_exception' => true, 'assertion_error_type' => 256, 'log' => array ( 'settings' => array ( 'file' => "logs/bx_error/" . date("Y-m-d") . ".log", 'log_size' => 1000000, // ~ 1Mb per file ), ), ), 'readonly' => true, ),
ФУНКЦИИ ОТЛАДКИ В ЯДРЕ D7
На замену функции AddMessage2Log в ядре D7 пришли новые функции:
use BitrixMainDiagDebug; Debug::dumpToFile($_SERVER); // для случаев, когда нужен var_dump Debug::writeToFile($_SERVER); // когда нужен print_r
Также в ядре D7 появились методы, для измерения времени. В старом ядре аналогов не было.
use BitrixMainDiagDebug; Debug::startTimeLabel("foo"); foo(); Debug::endTimeLabel("foo"); Debug::startTimeLabel("bar"); bar(); Debug::endTimeLabel("bar"); print_r(Debug::getTimeLabels());
Таким образом, правильная расстановка функций логирования и временных меток позволит выявить уязвимости в коде и уменьшить время выдачи сайта от сервера пользователю.
Думаю, объяснять, что такое логи — нет необходимости. Имея под рукой логи проще разобраться с возникшими проблемами и выяснить, когда и почему они начались. В данной статье расскажу основные моменты в использовании логов.
Для начала обсудим важный, но не для всех явный момент — логи полезны только в том случае, если с ними удобно работать.
Поэтому логи не должны занять все свободное пространство на диске, т.е. в логи нужно помещать только нужную информацию, а не все подряд. Устаревшие логи должны удаляться. Для удаления устаревших логов лучше всего настроить задание на cron.
Логи должны быть удобными для изучения — логи с ошибками и логи с диагностическими данными должны помещаться в разные файлы. Желательно разделять логи на временные интервалы — например, ежедневные логи (наиболее распространенный вариант, но если уверены, что логов будет мало — можно выделять, например, по месяцам, или неделям).
Все логи нужно держать в одной папке, чтобы было удобней их изучать (/logs/, /_logs/, /local/logs/ и т.п. ). В целях защиты следует закрыть доступ к папке с логами по http — настраивается в .htacces,
deny from all
и/или добавить к названию файла уникальный для проекта постфикс.
Папку для логов надо предварительно создать и убедиться, что битрикс (веб-сервер) имеет права на запись в нее.
В системе 1С-Битрикс существует 2 вида логов
AddMessage2Log(…)
Это функция из старого ядра.
Многие модули пишут через нее отладочную информацию.
Пример настройки места хранения логов, выводимых данной функцией, выглядит так (не забывайте, что папка logs/bx должна быть создана):
define("LOG_FILENAME", $_SERVER["DOCUMENT_ROOT"] . "/logs/bx/" . date("Y-m-d") . ".log");
Прописать данную настройку можно, например, в dbconn.php.
Секция exception_handling в файле .settings.php
Это уже функционал нового ядра.
Ядро через данный функционал пишет информацию обо всех ошибках и исключениях. Что именно пишется — зависит от настроек.
Пример настройки логов с разделением по дате:
'exception_handling' => array ( 'value' => array ( 'debug' => false, // disables error output to screen // ошибки для вывода в лог 'handled_errors_types' => E_ALL & ~E_NOTICE & ~E_STRICT & ~E_WARNING, 'exception_errors_types' => E_ALL & ~E_NOTICE & ~E_WARNING & ~E_STRICT & ~E_COMPILE_WARNING, 'ignore_silence' => true, 'assertion_throws_exception' => true, 'assertion_error_type' => 256, 'log' => array ( 'settings' => array ( 'file' => "logs/bx_error/" . date("Y-m-d") . ".log", 'log_size' => 1000000, // ~ 1Mb per file ), ), ), 'readonly' => true, ),
Функции отладки в ядре D7
На замену функции AddMessage2Log в ядре D7 пришли новые функции:
use BitrixMainDiagDebug; Debug::dumpToFile($_SERVER); // для случаев, когда нужен var_dump Debug::writeToFile($_SERVER); // когда нужен print_r
Также в ядре D7 появились методы, для измерения времени. В старом ядре аналогов не было.
use BitrixMainDiagDebug; Debug::startTimeLabel("foo"); foo(); Debug::endTimeLabel("foo"); Debug::startTimeLabel("bar"); bar(); Debug::endTimeLabel("bar"); print_r(Debug::getTimeLabels());
Таким образом, корректная расстановка функций логирования и временных меток позволит обнаружить уязвимости в коде и
уменьшить время отдачи сайта от сервера пользователю.
Особый файл |
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' => 'BitrixMainDBMysqlConnection', 'host' => 'localhost:31006', 'database' => 'admin_bus', 'login' => 'admin_bus', 'password' => 'admin_bus', 'options' => 2, 'handlersocket' => array ( 'read' => 'handlersocket', ), ), 'handlersocket' => array ( 'className' => 'BitrixMainDataHsphpReadConnection', 'host' => 'localhost', 'port' => '9998', ), ), 'readonly' => true, ),
Внимание: Начиная с версии ядра 14.5.2 и выше возможно использование расширения mysqli.
'className' => 'BitrixMainDBMysqliConnection',
Также для этого в 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-сервера отправителя и организовать разделение потоков отправки писем.
Список ссылок по теме:
- Пример скрипта для редактирования настроек. (блог)
1. Создаю в корне сайта файл error.php со следующим содержимым:
<?php
echo show_me_error;
?>
2. Открываю в браузере site.ru/error.php — белый экран
3. Смотрю bitrix/php_interface/dbconn.php:
$DBDebug = true;
4. Смотрю bitrix/php_interface/.settings.php:
...
array (
'value' =>
array (
'debug' => true,
'handled_errors_types' => E_ALL & ~E_NOTICE & ~E_STRICT & ~E_USER_NOTICE & ~E_DEPRECATED,
'exception_errors_types' => E_ALL & ~E_NOTICE & ~E_WARNING & ~E_STRICT & ~E_USER_WARNING & ~E_USER_NOTICE & ~E_COMPILE_WARNING,
'ignore_silence' => true,
'assertion_throws_exception' => false,
'assertion_error_type' => 256,
'log' => array (
'settings' => array (
'file' => 'bitrix/modules/error.log',
'log_size' => 1000000,
),
),
),
'readonly' => false,
),
...
5. Смотрю bitrix/modules/error.log — кучу левых Warning, однако моей ошибки в моём error.php нет
6. Иду в .htaccess:
php_value display_errors 1
php_value error_reporting 7
7. Иду на сервере в /var/log/nginx/error.log — то же самое, ничего о моей ошибке
Как мне на экране при открытии error.php увидеть мою ошибку?
Если у вас на сайте произошла ошибка, но она не отображается и выводиться надпись о том, что ошибки нужно включить в файле .settings.php, то значит они у вас отключены в этом файле.
Включить их просто, для этого надо собственно открыть этот файл по FTP или через функционал Битрикс по следующему пути в админке битрикс
Рабочий стол->Контент->Структура сайта->Файлы и папки->bitrix
Здесь представлен многомерный массив данных, ключ-значение. Это основные настройки вашего сайта на битриксе.
Что бы включить отображение ошибок находим строку ‘debug’ которая находится внутри ‘exception_handling’->’value’ и ставим ей значение true вместо false.
Что бы настроить какие именно ошибки мы хотим отображать в ключе ‘exception_errors_types’ указываем код ошибок, например 29687, но он мало понятен, поэтому лучше использовать в значение данного ключа константы через пробел:
‘handled_errors_types’ => E_ALL & ~E_NOTICE & ~E_WARNING & ~E_DEPRECATED,
Здесь мы перечислили все ошибки, предупредения и тд. Если нужно вывести только ошибки, то остальные константы можно просто убрать, поскольку уведомление
Загрузка
Блог «Дивасофт»
23 января 2017, Михаил
В файле bitrix/.settings.php
<?php
'exception_handling' =>
array (
'value' =>
array (
'debug' => true,
'handled_errors_types' => E_ALL & ~E_NOTICE & ~E_STRICT & ~E_USER_NOTICE & ~E_DEPRECATED,
'exception_errors_types' => E_ALL & ~E_NOTICE & ~E_WARNING & ~E_STRICT & ~E_USER_WARNING & ~E_USER_NOTICE & ~E_COMPILE_WARNING,
'ignore_silence' => false,
'assertion_throws_exception' => true,
'assertion_error_type' => 256,
'log' =>
array (
'settings' =>
array (
'file' => 'bitrix/err.log',
'log_size' => 1000000,
),
),
),
'readonly' => false,
)
?>
Логи будут в файле bitrix/err.log
На чтение 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,
Здесь мы перечислили все ошибки, предупредения и тд. Если нужно вывести только ошибки, то остальные константы можно просто убрать, поскольку уведомление
Если на экране появилась ошибка:
При выполнении скрипта возникла ошибка. Включить расширенный вывод ошибок можно в файле настроек .settings.php
Открываем файл .settings.php
находим debug
и заменяем false
на true
:
'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,
),
В результате чего на экране будет подробное описание ошибки:
[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, то значит они у вас отключены в этом файле.
Включить их просто, для этого надо собственно открыть этот файл по FTP или через функционал Битрикс по следующему пути в админке битрикс
Рабочий стол->Контент->Структура сайта->Файлы и папки->bitrix
Здесь представлен многомерный массив данных, ключ-значение. Это основные настройки вашего сайта на битриксе.
Что бы включить отображение ошибок находим строку ‘debug’ которая находится внутри ‘exception_handling’->’value’ и ставим ей значение true вместо false.
Что бы настроить какие именно ошибки мы хотим отображать в ключе ‘exception_errors_types’ указываем код ошибок, например 29687, но он мало понятен, поэтому лучше использовать в значение данного ключа константы через пробел:
‘handled_errors_types’ => E_ALL & ~E_NOTICE & ~E_WARNING & ~E_DEPRECATED,
Здесь мы перечислили все ошибки, предупредения и тд. Если нужно вывести только ошибки, то остальные константы можно просто убрать, поскольку уведомление
Загрузка
Блог «Дивасофт»
23 января 2017, Михаил
В файле bitrix/.settings.php
<?php
'exception_handling' =>
array (
'value' =>
array (
'debug' => true,
'handled_errors_types' => E_ALL & ~E_NOTICE & ~E_STRICT & ~E_USER_NOTICE & ~E_DEPRECATED,
'exception_errors_types' => E_ALL & ~E_NOTICE & ~E_WARNING & ~E_STRICT & ~E_USER_WARNING & ~E_USER_NOTICE & ~E_COMPILE_WARNING,
'ignore_silence' => false,
'assertion_throws_exception' => true,
'assertion_error_type' => 256,
'log' =>
array (
'settings' =>
array (
'file' => 'bitrix/err.log',
'log_size' => 1000000,
),
),
),
'readonly' => false,
)
?>
Логи будут в файле bitrix/err.log
На чтение 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,
Здесь мы перечислили все ошибки, предупредения и тд. Если нужно вывести только ошибки, то остальные константы можно просто убрать, поскольку уведомление
Пользователь 77670 Заглянувший Сообщений: 22 |
Стоит apache + php. Вывод ошибок включен, то есть если я создаю левый скрипт и пишу ошибочные конструкции в PHP — то в браузере вижу ругань. Но если выполняется код битрикса (начиная от его корневого файла index.php) — то там ошибки не выводятся, просто белый экран. Как включить вывод ошибок?! |
Пользователь 36231 Эксперт Сообщений: 650 |
может включить директиву error_reporting(E_ALL); ?? хотя на 100% не уверен, но попробовать можно. |
Пользователь 77670 Заглянувший Сообщений: 22 |
дык error_reporting включен. Битрикс где-то внутри себя то ли сбрасывает ошибки, то ли перенаправляет их куда-то… |
Пользователь 77670 Заглянувший Сообщений: 22 |
немного разобрался. В целом, он ошибки показывает. Но если есть такой кусок вот: <?php То тогда белый экран. Какая-то защита срабатывает? |
Пользователь 77670 Заглянувший Сообщений: 22 |
#5 0 24.12.2010 09:54:53 Я разрабатываю на локальном компьютере, стоит фактически дефолтная связка: Apache/2.2.17 (Win32) PHP/5.3.4 Если я открываю в браузере файл PHP с содержимым:
то вижу в браузере страничку со словами: «для примера» Если же такой код (а в частности $_SERVER[«SCRIPT_NAME»] = ‘что-то’) выполнить в рамках подключаемого битриксом модуля, то белый экран и все. Как-будто на этой строке происходит исключение и выполнение завершается. Есть ощущение, что в процессе запуска битрикс что-то инициализирует или делает какую-то защиту (в данном случае переменных сервера…) или что-то подобное… |
||
Пользователь 11573 Гуру Сообщений: 1782 |
#6 0 24.12.2010 20:49:08 ведь это системная переменная, содержащая имя файла.
(bitrix/modules/main/tools.php) ITConstruct. Разработка сайтов в Москве и Новосибирске. Внедрение корпоративных порталов. Техническая поддержка |
||
Пользователь 14686 Гуру Сообщений: 1556 1С-Рарус |
В настройках главного модуля посмотрите. |
Пользователь 4948 Посетитель Сообщений: 74 |
#8 4 02.04.2011 23:11:41 В корне сайта в .htaccess пишете
и видите ошибки. Студия Оробланко |
||
Если на экране появилась ошибка:
При выполнении скрипта возникла ошибка. Включить расширенный вывод ошибок можно в файле настроек .settings.php
Открываем файл .settings.php
находим debug
и заменяем false
на true
:
'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,
),
В результате чего на экране будет подробное описание ошибки:
[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
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
return array ( | |
‘exception_handling’ => | |
array ( | |
‘value’ => | |
array ( | |
‘debug’ => true, | |
‘handled_errors_types’ => 4437, | |
‘exception_errors_types’ => 4437, | |
‘ignore_silence’ => false, | |
‘assertion_throws_exception’ => true, | |
‘assertion_error_type’ => 256, | |
‘log’ => | |
array ( | |
‘settings’ => | |
array ( | |
‘file’ => ‘/var/log/php/exceptions.log’, | |
‘log_size’ => 1000000, | |
), | |
), | |
), | |
‘readonly’ => false, | |
) | |
); | |
?> |
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.
Заказать сайт
Обратившись ко мне вы получите надежного и сведущего исполнителя, который быстро и качественно реализует любую задачу для Вас и Вашего бизнеса.
'exception_handling' =>
array (
'value' =>
array (
'debug' => true,
'handled_errors_types' => E_ALL & ~E_NOTICE & ~E_STRICT & ~E_USER_NOTICE & ~E_DEPRECATED,
'exception_errors_types' => E_ALL & ~E_NOTICE & ~E_WARNING & ~E_STRICT & ~E_USER_WARNING & ~E_USER_NOTICE & ~E_COMPILE_WARNING,
'ignore_silence' => false,
'assertion_throws_exception' => true,
'assertion_error_type' => 256,
'log' =>
array (
'settings' =>
array (
'file' => 'bitrix/customError.log',
'log_size' => 1000000,
),
),
),
'readonly' => false,
)
Автор решения:
- Как правильно включить отображение ошибок в 1С-Битрикс
Теги:
1С Битриксphp
ОБРАТНАЯ СВЯЗЬ
Напишите мне
Вы разрабатываете новый сервис, вносите доработки в существующий и хотите лучше чем у конкурентов? Вы обратились по адресу. Предлагаю вам комплексную разработку сайтов студийного уровня. У меня вы можете заказать дизайн, верстку, програмированние, разработку нетрадиционного функционала, реализацию связи между CMS, CRM и Data Analitics, а так же все остальное касаемое сайтов, кроме продвижения.
Обращайтесь, я всегда проконсультирую по всем вопросам и помогу подобрать наиболее эффективное решение для Вашего бизнеса. Я занимаюсь созданием сайтов в Новосибирске и в других регионах России, также работаю со странами СНГ. Вы останетесь довольны нашим сотрудничеством
Отправляя форму Вы автоматически подтверждаете, что ознакомились и принимаете Политику конфиденциальности сайта
Блог «Дивасофт»
23 января 2017, Михаил
В файле bitrix/.settings.php
<?php
'exception_handling' =>
array (
'value' =>
array (
'debug' => true,
'handled_errors_types' => E_ALL & ~E_NOTICE & ~E_STRICT & ~E_USER_NOTICE & ~E_DEPRECATED,
'exception_errors_types' => E_ALL & ~E_NOTICE & ~E_WARNING & ~E_STRICT & ~E_USER_WARNING & ~E_USER_NOTICE & ~E_COMPILE_WARNING,
'ignore_silence' => false,
'assertion_throws_exception' => true,
'assertion_error_type' => 256,
'log' =>
array (
'settings' =>
array (
'file' => 'bitrix/err.log',
'log_size' => 1000000,
),
),
),
'readonly' => false,
)
?>
Логи будут в файле bitrix/err.log
Нужно включить показ ошибок bitrix/www/bitrix/.settings.php
‘debug’ => true,
тоже самое с базой данных .
bitrix/www/bitrix/php_interface/dbconn.php
Также можно заменить ‘log’ => null на
'log' =>
array (
'settings' =>
array (
'file' => '/var/log/php/exceptions.log',
'log_size' => 1000000,
),
),
По умолчанию в конфигурации Битрикс отключено логирование ошибок. Для записи ошибок в лог добавляем в файл конфигурации bitrix/.settings.php секцию:
<?php 'exception_handling' => array ( 'value' => array ( 'debug' => true, 'handled_errors_types' => E_ALL & ~E_NOTICE & ~E_STRICT & ~E_USER_NOTICE & ~E_DEPRECATED, 'exception_errors_types' => E_ALL & ~E_NOTICE & ~E_WARNING & ~E_STRICT & ~E_USER_WARNING & ~E_USER_NOTICE & ~E_COMPILE_WARNING, 'ignore_silence' => false, 'assertion_throws_exception' => true, 'assertion_error_type' => 256, 'log' => array ( 'settings' => array ( 'file' => 'bitrix/err.log', 'log_size' => 1000000, ), ), ), 'readonly' => false, ), ?>
Формат ужасный, но другого нет 🙂