Отключить расширенный вывод ошибок битрикс

Сканер безопасности показывает ошибку и рекомендует отключить расширенный вывод ошибок в файле settings.php. Выставил параметр debug в значение false — ошибка не пропала. Кеш чистил

'exception_handling' => 
  array (
    'value' => 
    array (
      'debug' => fasle,
      'handled_errors_types' => 4437,
      'exception_errors_types' => 4437,
      'ignore_silence' => true,
      'assertion_throws_exception' => true,
      'assertion_error_type' => 256,
      'log' =>

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.
  • valuetrue, если используется utf и false в обратном случае.

Если задана другая кодировка (не UTF-8):

  /*Отвечает за кодиорвку*/
  'utf_mode' => 
  array (
    'value' => false,
    'readonly' => true,
  ),
  • valuefalse, то есть не используется 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 — Включить поддержку assert
  • assertion_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' => 'BitrixMainDBMysqlConnection',
        '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 — база данных используемая по умолчанию, можно задать несколько соединений с базами данных, затем использовать в проекте разные соединения.

Рекомендуется вместо BitrixMainDBMysqlConnection использовать BitrixMainDBMysqliConnection

Обращение к другим соединениям с базами данных:

/*  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

Если на экране появилась ошибка:

При выполнении скрипта возникла ошибка. Включить расширенный вывод ошибок можно в файле настроек .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, 

Здесь мы  перечислили все ошибки, предупредения и тд. Если нужно вывести только ошибки, то остальные константы можно просто убрать, поскольку уведомление 

Загрузка

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.3k. Опубликовано 15.12.2019

Уведомление об ошибке в админке битрикс, или непосредственно в визуальной его части. При выполнении скрипта возникла ошибка.

Это уведомление, я назову это именно так — уведомление, т.к. мы еще не знаем в чем же дело, битрикс нас просто информирует о том, что при выполнении скрипта возникла ошибка, не более того.

Итак рассмотрим по порядку:

Содержание

  1. Почему может появиться это уведомление?
  2. Что делать, если появляется сообщение «при выполнении скрипта возникла ошибка»?
  3. Как в битрикс включить вывод ошибок?
  4. Методы выявление ошибки
  5. Основные причины появления белого экрана

Почему может появиться это уведомление?

  • Если уведомление появляется при разработке в публичной части сайта, то это однозначно ошибка в скрипте, вызвана, к примеру, ошибкой в синтаксисе в файле шаблона или в 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

Основные причины появления белого экрана

  1. Кривое редактирование /bitrix/php_interface/init.php : ошибки, лишний пробел после ?>
  2. Такая же проблема с белым экраном возникла после переноса на другой сервер.
  3. Проверить настройку PHP — short_open_tag , которая должна быть в On.
  4. Не хватает оперативной памяти( 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,

Здесь мы перечислили все ошибки, предупредения и тд. Если нужно вывести только ошибки, то остальные константы можно просто убрать, поскольку уведомление

Понравилась статья? Поделить с друзьями:
  • Отключить показ ошибок lua
  • Ош 01 сушка ошибка ваз 2114
  • Отключить перезагрузку при ошибке биос
  • Очп 11 исправьте пунктуационные и грамматические ошибки
  • Отключить перезагрузку компьютера при ошибке