Почему ошибки 500 не записываются в error.log? Обычно это происходит, когда в конфигурации PHP отключено логирование (log_errors = Off), задан неверный путь к файлу или уровень ошибок исключает фатальные сбои. Также возможен сбой на раннем этапе запуска скрипта, когда обработчик ошибок ещё не инициализирован.
Первым делом проверьте в php.ini параметры log_errors и error_log, а затем права на запись в сам лог-файл — часто файл не создаётся из-за отсутствия прав у пользователя веб-сервера. На Nginx отдельно проверьте директиву error_log в конфигурации сайта, на Apache — ErrorLog внутри VirtualHost. Быстрый чек-лист: включите log_errors, укажите абсолютный путь к error.log, выставите владельца www-data и права 644, а также отключите display_errors на проде, чтобы детали не светились в ответе клиенту.
Если нужно гарантированно фиксировать все 500-е и не терять критичные ошибки, мы настроим логирование, агрегацию и алерты — это займёт около 15 минут на типовом сервере. Оставьте заявку, и мы внедрим готовое решение под ваш стек.