Меню

Bitrix включить показ ошибок

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

 

Пользователь 77670

Заглянувший

Сообщений: 22
Баллов: 1
Авторитет:

0

Рейтинг пользователя:

0

Регистрация: 03.12.2010

Стоит apache + php. Вывод ошибок включен, то есть если я создаю левый скрипт и пишу ошибочные конструкции в PHP — то в браузере вижу ругань. Но если выполняется код битрикса (начиная от его корневого файла index.php) — то там ошибки не выводятся, просто белый экран. Как включить вывод ошибок?!

 

Пользователь 36231

Эксперт

Сообщений: 650
Баллов: 121
Авторитет:

1

Рейтинг пользователя:

3

Регистрация: 22.01.2009

может включить директиву error_reporting(E_ALL); ?? хотя на 100% не уверен, но попробовать можно.

 

Пользователь 77670

Заглянувший

Сообщений: 22
Баллов: 1
Авторитет:

0

Рейтинг пользователя:

0

Регистрация: 03.12.2010

дык error_reporting включен. Битрикс где-то внутри себя то ли сбрасывает ошибки, то ли перенаправляет их куда-то…
Демка скачана с сайта 1C. Если при ее работе возникают ошибки — они никогда на экран не выводятся.

 

Пользователь 77670

Заглянувший

Сообщений: 22
Баллов: 1
Авторитет:

0

Рейтинг пользователя:

0

Регистрация: 03.12.2010

немного разобрался. В целом, он ошибки показывает. Но если есть такой кусок вот:

<?php
 $_SERVER[«SCRIPT_NAME»] = ‘нечто’;
?>

То тогда белый экран. Какая-то защита срабатывает?

 

Пользователь 77670

Заглянувший

Сообщений: 22
Баллов: 1
Авторитет:

0

Рейтинг пользователя:

0

Регистрация: 03.12.2010

#5

0

24.12.2010 09:54:53

Я разрабатываю на локальном компьютере, стоит фактически дефолтная связка: Apache/2.2.17 (Win32) PHP/5.3.4

Если я открываю в браузере файл PHP с содержимым:

Код
<?php
  $_SERVER["SCRIPT_NAME"] = 'для примера';
  echo $_SERVER["SCRIPT_NAME"];
?>

то вижу в браузере страничку со словами: «для примера»

Если же такой код (а в частности $_SERVER[«SCRIPT_NAME»] = ‘что-то’) выполнить в рамках подключаемого битриксом модуля, то белый экран и все. Как-будто на этой строке происходит исключение и выполнение завершается. Есть ощущение, что в процессе запуска битрикс что-то инициализирует или делает какую-то защиту (в данном случае переменных сервера…) или что-то подобное…

 

Пользователь 11573

Гуру

Сообщений: 1782
Баллов: 257
Авторитет:

1

Рейтинг пользователя:

15

Регистрация: 04.05.2007

#6

0

24.12.2010 20:49:08

ведь это системная переменная, содержащая имя файла.
зачем вы ее меняете? Она используется в системе, например, в такой конструкции

Код
   if($page===false && $_SERVER["REQUEST_URI"]<>"")
      $page = $_SERVER["REQUEST_URI"];
   if($page===false)
      $page = $_SERVER["SCRIPT_NAME"];

(bitrix/modules/main/tools.php)

ITConstruct. Разработка сайтов в Москве и Новосибирске. Внедрение корпоративных порталов. Техническая поддержка

 

Пользователь 14686

Гуру

Сообщений: 1556
Баллов: 250
Авторитет:

0

Рейтинг пользователя:

19

Регистрация: 15.08.2007

1С-Рарус

В настройках главного модуля посмотрите.

 

Пользователь 4948

Посетитель

Сообщений: 74
Баллов: 8
Авторитет:

1

Рейтинг пользователя:

1

Регистрация: 29.06.2006

#8

4

02.04.2011 23:11:41

В корне сайта в .htaccess пишете

Код
php_value display_errors 1

и видите ошибки.

Студия Оробланко

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.

Главная
G-Web IT. Битрикс-интегратор. Сложный ecommerce и нестандартные интеграции.
G-Web IT

Адрес:
Летная улица, 30, корпус 1
141021
Мытищи,

Электронная почта: info@goldwebit.net

По будням с 10:00 до 20

Битрикс файл bitrix/.settings.php

Секция 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', 


   'extension' => 'MyLogExt', 
   'required_file' => 'modules/mylog.module/mylog.php' 

   'settings' => array( 
      ),
),

В приведенном примере: class_name - пользовательский класс, наследуемый от ExceptionHandlerLog.
Может быть не указан. 
В этом случае будет использоваться BitrixMainDiagFileExceptionHandlerLog.
extension - расширение PHP, использовать можно только вместе с class_name.
required_file - включаемый файл. Используется только вместе с class_name.
settings - настройки для класса, указанного в 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?

Возврат к списку

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

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

А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • Bitrix sphinx connect error ошибка подключения connection refused
  • Bitrix smart filter 404 ошибка