Раздел помощи SpaceWeb
Поиск:     Расширенный поиск

Вывод ошибок PHP

Включение отображения ошибок в PHP-скриптах может потребоваться для отладки сайта.

За протоколирование и уровень обработки ошибок в PHP отвечают директивы display_errors и error_reporting.

  • Директива display_errors определяет, требуется ли выводить ошибки на экран вместе с остальным выводом.
  • Директива error_reporting задает уровень протоколирования ошибок, т.е. какие именно ошибки и предупреждения PHP выводить.

Из соображений безопасности на серверах виртуального хостинга вывод ошибок PHP выключен.
В случае, если PHP для Вашего сайта подключен как модуль Apache (этот способ используется на хостинге по умолчанию), то для вывода всех поддерживаемых ошибок и предупреждений достаточно добавить строки

php_flag display_errors on
php_value error_reporting -1

в файл с именем .htaccess, размещающийся в папке public_html сайта.

Отредактировать файл можно, например, в разделе «Файловый менеджер» .
Если файла .htaccess нет, то его следует создать.

В разделе «Домены» в колонке "Папка" можно узнать, где именно размещается папка public_html сайта.

После включения вывода ошибок необходимо повторить заход на сайт, либо обновить страницу, нажав F5 в браузере. На странице должна отобразиться отладочная информация, доступная по сайту.

Следует иметь в виду, что если в скриптах сайта перед именами функций присутствует оператор подавления ошибок (символ '@'), то несмотря на прописанные в .htaccess директивы, вывод ошибок производиться не будет.

Дополнительная информация

  • В случае, если PHP для сайта подключен в режиме CGI, изменение параметров PHP производится в файле php.ini сайта. Для вывода всех ошибок и предупреждений необходимо внести в указанный файл строки
display_errors = On
error_reporting = E_ALL
  • Вывод ошибок также может задаваться непосредственно в скриптах сайта с помощью функции ini_set(). Например, для включения вывода всех ошибок служат строки
ini_set('display_errors', 1);
ini_set('error_reporting', E_ALL);

Параметры, заданные с помощью функции ini_set(), имеют более высокий приоритет и перекрывают директивы php.ini и .htaccess.

  • Вывод ошибок на экран следует включать только во время отладки сайта. Наличие такого кода может негативно сказаться на безопасности веб-приложения.

Не нашли ответ на свой вопрос? Позвоните нашим специалистам по бесплатному телефону 8-800-100-16-15.