Nginx + PHP-FPM produzieren 502 fehlerhaftes Gateway anstelle eines schwerwiegenden Fehlers?


11

Ich teste derzeit Symfony2 mit Nginx und PHP-FPM. Ich benutze auch Xdebug.

Symfony2 wird mit einem Demo-Bundle geliefert. Ich wollte die neue Behandlung schwerwiegender Fehler, die mit Symfony 2.2.0 einhergehen, testen, indem ich einen Syntaxfehler im Acme / Demo-Bundle erstelle. Warum ich das mache, ist die Serverantwort 502 schlechtes Gateway.

Wenn ich jedoch einen Syntaxfehler in der Datei app_dev.php mache (also bevor das Framework ausgelöst wird), informiert mich Xdebug über den schwerwiegenden Fehler.

Und überraschenderweise wird der Symfony-Fehlerbehandler wie erwartet angezeigt, wenn ich diesen Tippfehler behebe und dann den Syntaxfehler im Acme / Demo-Bundle neu erstelle. Und schließlich, wenn alle Tippfehler behoben werden (Seite funktioniert) und dann denselben Tippfehler erneut erstellen (erneut in Acme / Bundle), erhalte ich ein schlechtes Gateway.

Hast du eine Ahnung davon?


Irgendein Update? Ich habe das gleiche Problem
Kevin Robatel

Hier auch für Updates
Zaki Aziz

Welche Zeile wird in Ihrem nginx error.log angezeigt, wenn Sie den fehlerhaften Gateway-Fehler erhalten? Dies ist zu 90% ein falscher Hinweis auf einen PHP-FPM-Socket. Können Sie uns auch Ihre Nginx-Konfiguration und die von Ihnen verwendete PHP-FPM-Pool-Konfiguration anzeigen?
Bert

Antworten:


1

Dies ist mir gestern passiert. Es gab einen Fehler bei der Übergabe von nginx an php5-fpm. Es stellte sich heraus, dass der php-fpm-Dienst so konfiguriert war, dass er den falschen Socket abhört.

In /etc/php5/php-fpm.conf habe ich geändert zu:

listen = /var/run/php5-fpm.sock

und in allen / etc / nginx / stellen Sie sicher, dass fastcgi_pass unix: /var/run/php5-fpm.sock

HTH


Nein, meine Konfiguration funktioniert, da ich die App verwenden kann. Es ist nur in diesem speziellen Szenario, das ich beschrieben habe.
Jchatard

Versuchen Sie, die Puffer zu wechseln. stackoverflow.com/questions/27173945/…
Ryan

0

Sie können das genaue Problem verfolgen, indem Sie die Nginx-Protokolle überprüfen.

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

502 liegt daran, dass beim Herstellen einer Verbindung zum php-fpm-Prozess ein Problem auftritt. Log kann Ihnen weitere Details geben. Wenn Sie das Protokoll isolieren möchten, erwähnen Sie separates error_log unter dem Speicherort Ihrer PHP-Anwendung, wie z

    location <name> {

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

    }

(Wenn nginx versucht, eine Verbindung zu einem anderen Port / phpfpm / Socket herzustellen, erhalten Sie möglicherweise eine Antwort.)

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.