Отключить трассировку стека HTML с помощью Xdebug

Администратор установил Xdebug 2.1.1 на наш общий сервер PHP 5.3.0, чтобы использовать его отладчик. Теперь я с трудом могу прочитать трассировку стека неперехваченных исключений, потому что они отформатированы Xdebug с раздражающими цветами, которые плохо взаимодействуют с CSS сайта:

Нечитаемая трассировка стека

Поскольку PHP работает как модуль Apache, я попытался отключить эту функцию в файле .htaccess, но не могу заставить ее работать:

php_flag xdebug.default_enable Off
php_flag xdebug.overload_var_dump Off
php_flag xdebug.show_exception_trace Off
php_value xdebug.trace_format 1

phpinfo() показывает мои изменения в столбце Локальное значение, но я все еще вижу эти ужасные оранжевые таблицы. Какую директиву мне нужно изменить?


person Álvaro González    schedule 02.08.2011    source источник
comment
xdebug.org/docs/stack_trace   -  person hakre    schedule 21.07.2013


Ответы (3)


Проверьте xdebug_disable()документы:

Отключает трассировку стека

Отключить отображение трассировки стека при возникновении ошибок.

См. также xdebug.default_enableДокументы.

person hakre    schedule 02.08.2011
comment
xdebug.default_enable не имеет очевидного эффекта, но вызов xdebug_disable() поверх моего кода работает нормально. Я посмотрю, как упаковать его в настройках моего веб-сайта. - person Álvaro González; 02.08.2011
comment
Попробуйте поставить xdebug.default_enable в системный php.ini, может сработает. Кроме того, возможно, использование 0 вместо off в конфигурации .htaccess также может помочь, но это всего лишь предположение, я его не проверял. - person hakre; 03.08.2011
comment
Хорошо... Я провел дальнейшее тестирование, и директива is xdebug.default_enable, но, похоже, где-то есть ошибка: на общем сервере разработки она игнорируется, в моей локальной установке она полностью соблюдается. - person Álvaro González; 04.08.2011
comment
@ Альваро Г. Викарио: Вы все еще используете метод конфигурации .htaccess или используете php.ini? Просто прошу разъяснений. - person hakre; 04.08.2011
comment
Только что попробовал .htaccess (будучи общим ресурсом, я не хочу беспокоить других). Ничего не стоит то, что phpinfo() во всех случаях сообщает директиву как измененную. Я написал быстрое обходное решение с помощью auto_prepend_file, которое работает для меня. - person Álvaro González; 04.08.2011
comment
Я был близок к тому, чтобы предложить автоматически добавить файл, однако мне действительно интересно, почему правила .htaccess не работают должным образом. Возможно, это проблема с mod_php или что-то в этом роде. - person hakre; 04.08.2011
comment
xdebug.default_enable=off в php.ini работал с php5.4 в Debian - person Dr Casper Black; 03.05.2013

Вы также должны убедиться, что у вас есть html_errors=0 в PHP. Кроме того, оранжевый не ужасен ;-)

person Derick    schedule 02.08.2011
comment
Я не уверен, что понял. Я уже использую ошибки HTML вместе с error_prepend_string и error_append_string, чтобы отображать переводы строк. Если я отключу его, Xdebug не будет рисовать HTML, но это также сделает ошибку нечитаемой, потому что все находится в одной строке. Я не хочу искать сообщения об ошибках в окне Просмотр исходного кода... - person Álvaro González; 02.08.2011
comment
Очень полезно, если вы выводите json из PHP для использования с Javascript, angular и всем остальным. - person Pere; 07.01.2016
comment
Если @derick ответит, вам лучше послушать. Он написал XDebug. - person Jeroen Vermeulen - MageHost; 29.05.2017

Добавьте следующий код в сценарий инициализации:

 if (function_exists('xdebug_disable')) {
           xdebug_disable();
         }
person Sumoanand    schedule 06.02.2014
comment
Обратите внимание, что remote_autostart и remote_enable управляет отладчиком. Они не имеют ничего общего с трассировкой стека. - person Álvaro González; 09.12.2014
comment
Как сказал Альваро, вариант № 2 здесь не имеет ничего общего с отображением трассировки стека HTML. - person rockerston; 07.04.2016
comment
Обновлено согласно предложению. - person Sumoanand; 07.04.2016