Как отладить 500 Ошибка в Symfony 2
Я борюсь с сообщениями об ошибках Symfony 2, потому что я не могу выяснить, что на самом деле происходит, когда возникает ошибка 500.
У меня правильно установлен XDebug, но кажется, что Symfony все правит.
Пользовательские страницы просто говорят:
Oops! An Error Occurred
The server returned a "500 Internal Server Error".
Something is broken. Please e-mail us at [email] and let us know what you were doing when this error occurred. We will fix it as soon as possible. Sorry for any inconvenience caused.
Это довольно забавно! Что-то сломано, но дело в том, что мне нужно исправить свой код, но я не знаю, в чем и где проблема! И конечно, если я отправлю электронное письмо команде Symfony, смогут ли они решить мою проблему, даже если я даже не знаю, что им сказать?
Какой-то ключ к тому, что мне здесь не хватает?
5 ответов
Сначала посмотрите на логи в app/logs
в зависимости от вашей среды - dev.log
для развития, prod.log
для производства и т. д.
Если код падает до того, как Symfony сможет запустить, проверьте журналы вашего веб-сервера - например, nginx.
Если у вас есть проект symfony flex, возможно, вы забыли установить monolog;) Запустите:
composer req log
Для версий Symfony 3.x, 4.x, 5.x, 6.x и выше:
Журналы будут найдены в зависимости от среды
- Для среды разработки -
var/logs/dev.log
- Для prod env-
var/logs/prod.log
Кроме того, как предполагает принятый ответ, вам, возможно, придется проверить журналы сервера, если ваше приложение выйдет из строя, даже не достигнув Symfony.
Обычное место для журналов сервера указано ниже —
- Для сервера
апач -
ls /var/log/apache2
- Для сервера
Nginx -
ls /var/log/nginx
sudo chmod -R o+w var/cache/
из папки проекта решил проблему для меня, по крайней мере, на этот раз :)
В журналах Symfony или веб-сервера не было ошибок.
Что вызвало проблему
Оказалось, что проблема была вызвана тем, что я предварительно удалил папку кеша и перегенерировал кеш, т.е.
rm -fr var/cache/
./bin/console cache:clear
После того,
var/cache
стал
drwxr-xr-x
.
Еще лучший способ улучшить ваш процесс отладки Symfony - это позволить Monit отслеживать ваши журналы Symfony и Apache на наличие ошибок и отправлять вам электронные письма, когда что-то случается: http://intelligentbee.com/blog/2016/01/12/how-to-monitor-symfony-and-apache-logs-with-mmonit/