Назад | Перейти на главную страницу

Nginx + PHP-FPM создает неверный шлюз 502 вместо фатальной ошибки?

В настоящее время я тестирую Symfony2 с Nginx и PHP-FPM. Я также использую Xdebug.

Symfony2 поставляется с пакетом Demo, я хотел протестировать новую обработку фатальных ошибок, которая поставляется с Symfony 2.2.0, создав синтаксическую ошибку в пакете Acme / Demo. Почему я так делаю, ответ сервера - 502 плохой шлюз.

Но если я сделаю синтаксическую ошибку в файле app_dev.php (то есть до запуска фреймворка), то Xdebug сообщит мне о фатальной ошибке.

И что удивительно, если я исправлю эту опечатку, а затем заново создаю синтаксическую ошибку в пакете Acme / Demo, обработчик ошибок Symfony появится, как ожидалось. И, наконец, если исправить все опечатки (страница работает), а затем снова создать ту же самую опечатку (снова в Acme / Bundle), я получу плохой шлюз.

У вас есть какие-нибудь подсказки по этому поводу?

Это случилось со мной вчера. Произошла ошибка при передаче с nginx на php5-fpm, оказалось, что служба php-fpm была настроена для прослушивания на неправильном сокете.

в /etc/php5/php-fpm.conf я изменил на:

слушайте = /var/run/php5-fpm.sock

и во всем / etc / nginx / убедитесь, что fastcgi_pass unix: /var/run/php5-fpm.sock

HTH

Вы можете отслеживать точную проблему, проверив журналы nginx.

/var/log/nginx/sitename.error.log

502, потому что есть некоторая проблема с подключением к процессу php-fpm. Журнал может дать вам более подробную информацию. Если вы хотите изолировать журнал, укажите отдельный error_log под местоположением вашего приложения php, например

    location <name> {

    error_log /var/log/nginx/site_location.error.log;
  #  error_log /var/log/nginx/site_location.error.log debug;

    }

(если nginx пытается подключиться к другому порту / phpfpm / socket, вы можете получить ответ от этого)