Отображение ошибок PHP является важным инструментом для разработчиков и администраторов сайтов. Когда на сайте возникает проблема, PHP может скрывать сообщения об ошибках, что затрудняет поиск неисправностей. Включение вывода ошибок помогает быстро определить причину сбоя, найти проблемный участок кода и устранить ошибку.
Зачем включать отображение ошибок
По умолчанию на большинстве хостингов вывод ошибок отключен из соображений безопасности. Вместо подробного сообщения пользователь может видеть пустую страницу или ошибку 500.
Включение отображения ошибок позволяет:
- Быстро находить ошибки в коде.
- Проверять работу новых функций.
- Диагностировать проблемы с подключением к базе данных.
- Находить ошибки синтаксиса.
- Ускорять процесс разработки.
На рабочих сайтах отображение ошибок рекомендуется отключать, чтобы техническая информация не была доступна посетителям.
Включение ошибок через PHP-код
Самый простой способ — добавить специальные директивы в начало PHP-файла.
<?php error_reporting(E_ALL); ini_set('display_errors', 1); ini_set('display_startup_errors', 1); ?> После добавления этого кода PHP будет отображать все предупреждения, уведомления и критические ошибки.
Настройка через php.ini
На VPS или выделенном сервере можно изменить параметры в основном файле конфигурации PHP.
Найдите следующие строки:
display_errors = Off display_startup_errors = Off error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
Измените их следующим образом:
display_errors = On display_startup_errors = On error_reporting = E_ALL
После сохранения файла необходимо перезапустить веб-сервер или службу PHP-FPM.
Настройка через .htaccess
Если используется Apache и хостинг разрешает изменение PHP-параметров через .htaccess, можно добавить:
php_flag display_errors On php_value error_reporting 32767
После сохранения настройки обычно применяются автоматически.
Использование файла .user.ini
На многих виртуальных хостингах доступен файл .user.ini для изменения параметров PHP.
Добавьте в него:
display_errors = On display_startup_errors = On error_reporting = E_ALL
Через несколько минут настройки будут активированы.
Проверка журнала ошибок
В некоторых случаях ошибки не выводятся на экран, а записываются в специальный лог-файл.
Для включения логирования можно использовать следующие параметры:
log_errors = On error_log = /path/to/php-error.log
Такой способ считается более безопасным для рабочих проектов.
Основные уровни ошибок PHP
PHP поддерживает различные типы сообщений.
- E_ERROR — критические ошибки.
- E_WARNING — предупреждения.
- E_NOTICE — уведомления.
- E_PARSE — ошибки синтаксиса.
- E_DEPRECATED — устаревшие функции.
- E_ALL — все типы ошибок.
Для полной диагностики обычно используется значение E_ALL.
Почему ошибки могут не отображаться
Даже после изменения настроек сообщения могут не выводиться по нескольким причинам:
- Изменен неправильный файл php.ini.
- Не выполнен перезапуск сервера.
- Хостинг блокирует изменение параметров.
- Используется отдельная конфигурация PHP-FPM.
- Ошибка возникает до применения настроек.
В таких случаях рекомендуется проверить настройки через phpinfo().
Отображение ошибок в WordPress
Для WordPress можно включить режим отладки через файл wp-config.php.
define('WP_DEBUG', true); define('WP_DEBUG_LOG', true); define('WP_DEBUG_DISPLAY', true); После этого ошибки будут отображаться на сайте и записываться в журнал.
Безопасность при выводе ошибок
На рабочих проектах не рекомендуется постоянно держать отображение ошибок включенным.
Причины:
- Раскрытие структуры сайта.
- Отображение путей к файлам.
- Утечка конфигурационной информации.
- Повышение риска атак.
После завершения диагностики рекомендуется отключить display_errors и оставить только запись ошибок в журнал.
Как проверить настройки PHP
Для проверки текущих параметров удобно использовать функцию phpinfo().
<?php phpinfo(); ?>
На странице информации о PHP можно увидеть значения display_errors, error_reporting и других параметров конфигурации.
Заключение
Включить отображение ошибок PHP можно несколькими способами: через код PHP, файл php.ini, .htaccess, .user.ini или настройки CMS. Для отладки рекомендуется использовать параметр error_reporting = E_ALL и активировать display_errors. После устранения ошибок на рабочем сайте лучше отключить вывод сообщений и использовать журнал ошибок для безопасного мониторинга работы проекта.


