PHP и серверы

Вывод ошибок в настройках PHP

📅 ⏱ 20:41 ⏳ 2 мин 💬 0

Вывод ошибок в настройках php: простыми словами, по шагам и с примерами. Разбираем, как это работает на практике, типичные ошибки и лучшие решения. Раскрываем т

Коротко: вывод ошибок PHP настраивают директивами display_errors (показывать) и error_reporting (какие показывать). В разработке включают display_errors = On и error_reporting = E_ALL, а на рабочем сайте — display_errors = Off и логирование в файл. Настраивают в php.ini, .user.ini, .htaccess или прямо в скрипте через ini_set().

Кому и зачемБез вывода ошибок вы видите «белый экран» вместо причины сбоя. Но показывать ошибки посетителям нельзя: это подсказки для взломщика и «грязный» вид.

Две директивы — два вопроса

Директива Отвечает за
display_errors показывать ли ошибки на странице
error_reporting какие типы ошибок обрабатывать
log_errors писать ли ошибки в лог
error_log путь к файлу лога

Вкладки: настройка




CODE
; для разработки
display_errors = On
error_reporting = E_ALL

; для рабочего сайта
display_errors = Off
log_errors = On
error_log = /path/to/php-error.log

В php.ini задают глобально. Файл правят в панели хостинга или у администратора сервера.

CODE
; .user.ini в корне сайта
display_errors = On
error_reporting = E_ALL
log_errors = On

.user.ini часто перебивает серверный php.ini в режиме PHP-FPM. Иногда нужен .htaccess:

CODE
php_flag display_errors on

CODE
ini_set('display_errors', '1');
ini_set('display_startup_errors', '1');
error_reporting(E_ALL);

Так включают ошибки в конкретном скрипте — удобно для отладки одного файла. На рабочий сайт это не влияет.

BASH
// wp-config.php
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);   // лог в wp-content/debug.log
define('WP_DEBUG_DISPLAY', false);
@ini_set('display_errors', 0);

В WordPress включайте WP_DEBUG только на копии сайта. Лог debug.log покажет ошибки, не «светя» их посетителям.

Никогда не показывайте ошибки «в проде»Сообщения вида Warning: include(/var/www/...) раскрывают пути, версии и структуру. Держите display_errors = Off на рабочем сайте и читайте лог.

Практика: найти ошибку правильно

  1. Включите логирование (а не показ ошибок) на рабочем сайте.
  2. Воспроизведите проблему.
  3. Откройте лог (debug.log или серверный лог) и найдите последнюю ошибку.
  4. Для отладки конкретного кода включите показ ошибок временно.
  5. Исправьте причину и выключите отладку.

Частые ошибки: причина → решение

Симптом Причина Решение
«Белый экран» показ ошибок выключен включить лог и отладку
Настройки не применяются серверный лимит/режим использовать .user.ini
Лог пуст не задан error_log указать путь к файлу
Ошибки видны посетителям display_errors = On выключить

Проверьте себя

Чек-лист




Что должно быть на рабочем сайте?




Какой уровень ошибок включают для разработки?




Вопросы и ответы

Часто в корне сайта (error_log), в папке логов хостинга или в wp-content/debug.log при включённом WP_DEBUG_LOG.

Да, через условия в коде: сравнить IP и включить display_errors только для него. Так посетители ничего не увидят.

Возможно, не задан путь error_log или у веб-сервера нет прав на запись. Уточните у хостинга, где их лог.

Это константа WordPress, которая решает, показывать ли ошибки на странице. Для отладки обычно true на копии, а на проде — false с логированием.

Итоги

  • display_errors — показ, error_reporting — какие ошибки.
  • На рабочем сайте показ выключают, включая логи.
  • Настраивают в php.ini, .user.ini, .htaccess или ini_set().
  • В WordPress — WP_DEBUG и лог debug.log.
Поделиться: ВКонтакте Telegram WhatsApp Одноклассники Viber Мой Мир

Комментарии

Пока комментариев нет — будьте первым, кто поделится мнением.

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Получите консультацию нашего маркетолога

Изучит ваш проект, подберет подходящие услуги и тарифы

Получите бесплатный аудит

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

Закажите услугу Каталог морепродуктов

Наш специалист свяжется с вами в ближайшее время и уточнит детали

Закажите адаптивный сайт

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите сайт

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите сайт лендинг

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите сайт каталог

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите интернет-магазин

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите веб-приложение

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите тариф Аутсорс

Стоимость от 150 000 ₽

Закажите тариф Магазин

Стоимость 90 000 ₽

Закажите тариф Классический

Стоимость 60 000 ₽

Закажите тариф Эконом

Стоимость 40 000 ₽

Закажите SEO продвижение

Наш специалист свяжется с вами, проведет анализ, предложит стоимость