Nginx + PHP-FPM виробляє 502 поганих шлюзу замість фатальної помилки?


11

Зараз я тестую Symfony2 з Nginx та PHP-FPM. Я також використовую Xdebug.

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

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

І дивно, якщо я виправлю цю помилку, то заново створюю синтаксичну помилку в пакеті Acme / Demo, тоді обробник помилок Symfony з’являється, як очікувалося. І нарешті, якщо виправити всі друкарські помилки (сторінка працює), а потім знову створити цей самий друкарський помилок (знову в Acme / Bundle), я отримаю поганий шлюз.

У вас є якісь підказки щодо цього?


Будь-яке оновлення? У мене те саме питання
Кевін Робатель

Ось також для оновлень
Закі Азіз

Який рядок з'являється у вашому nginx error.log, коли ви отримуєте помилкову помилку шлюзу? Це на 90% неправильно вказує на розетку PHP-FPM. Також чи можете ви показати нам вашу конфігурацію nginx та конфігурацію пулу PHP-FPM, яку ви використовуєте?
Берт

Відповіді:


1

Це сталося зі мною вчора. Помилка передачі з 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


Ні, моя конфігурація працює, оскільки я можу використовувати додаток. Це я описав лише на конкретному сценарії.
jchatard

Спробуйте змінити буфери. stackoverflow.com/questions/27173945/…
Ryan

0

Ви можете відстежити точну проблему, перевіривши журнали nginx.

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

502 тому, що є певна проблема підключення до процесу php-fpm. Журнал може дати вам більше деталей. Якщо ви хочете ізолювати журнал, згадайте про окремий файл помилок під розташуванням вашої програми 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, ви можете отримати відповідь від цього)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.