Главная страница » Блог » Почему ошибки 500 не записываются в файл error.log?

Почему ошибки 500 не записываются в файл error.log?

Почему ошибки 500 не записываются в файл error.log?

По умолчанию сервер Apache настроен так, что ошибки уровня Internal Server Error (код 500) могут не фиксироваться автоматически в стандартный журнал ошибок (error.log), если они возникают внутри пользовательского скрипта или модуля расширения PHP/mod_perl и не перехватываются обработчиком исключений приложения.

Фактический ответ:

Ошибки HTTP 500 обычно регистрируются только тогда, когда сервер сам генерирует такую ошибку, например, при проблемах с конфигурацией сервера или его компонентами. Если ошибка возникает из-за некорректного кода пользователя, она может быть пропущена стандартными настройками журнала.

Практическое уточнение:

Чтобы гарантированно фиксировать все ошибки 500, нужно настроить перехват исключений через код приложения или изменить настройки сервера таким образом, чтобы он всегда записывал такие события в журнал. Например, можно добавить следующий фрагмент в конфиг Apache:

apache

ErrorLogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\""

CustomLog "/var/log/apache2/error.log" combined

Мини-чек-лист:

Убедитесь, что модуль modlogconfig включён в конфигурации вашего сервера.

Проверьте наличие записи об ошибке вручную в журнале /var/log/apache2/error.log.

Настройте обработку исключений в вашем приложении, чтобы гарантировать запись всех ошибок 500.

Внимание:
Условия: Внедрение системы — от 50 000 ₽/мес. Если бюджет подходит — посмотреть тарифы →
Прокрутить вверх