Как отладить 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/

Другие вопросы по тегам