Если у вас на сайте произошла ошибка, но она не отображается и выводиться надпись о том, что ошибки нужно включить в файле .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
Блог «Дивасофт»
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
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 увидеть мою ошибку?
Стоит apache + php. Вывод ошибок включен, то есть если я создаю левый скрипт и пишу ошибочные конструкции в PHP — то в браузере вижу ругань. Но если выполняется код битрикса (начиная от его корневого файла index.php) — то там ошибки не выводятся, просто белый экран. Как включить вывод ошибок?! |
|
может включить директиву error_reporting(E_ALL); ?? хотя на 100% не уверен, но попробовать можно. |
|
дык error_reporting включен. Битрикс где-то внутри себя то ли сбрасывает ошибки, то ли перенаправляет их куда-то… |
|
немного разобрался. В целом, он ошибки показывает. Но если есть такой кусок вот: <?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. Разработка сайтов в Москве и Новосибирске. Внедрение корпоративных порталов. Техническая поддержка |
||
В настройках главного модуля посмотрите. |
|
Пользователь 4948 Посетитель Сообщений: 74 |
#8 4 02.04.2011 23:11:41 В корне сайта в .htaccess пишете
и видите ошибки. Студия Оробланко |
||