Как включить вывод ошибок 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, 

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

Загрузка

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

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

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 увидеть мою ошибку?

Блог «Дивасофт»

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.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,

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

Возможно, вам также будет интересно:

  • Как включить все ошибки php
  • Как включить восстановление после ошибок windows
  • Как включить в эбу ошибка
  • Как включить в эбу ошибка
  • Как включить в телеграмме исправление ошибок

  • Понравилась статья? Поделить с друзьями:
    0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии