Nginx + PHP-FPM produkuje 502 błędną bramę zamiast krytycznego błędu?

11

Obecnie testuję Symfony2 z Nginx i PHP-FPM. Używam również Xdebug.

Symfony2 jest dostarczany z pakietem demonstracyjnym. Chciałem przetestować nową obsługę błędów krytycznych, który jest dostarczany z Symfony 2.2.0, tworząc błąd składniowy w pakiecie Acme / Demo. Dlaczego to robię, odpowiedź serwera to 502 zła brama.

Ale jeśli popełniam błąd składniowy w pliku app_dev.php (czyli przed uruchomieniem frameworka), wtedy Xdebug mówi mi o błędzie krytycznym.

I nieoczekiwanie, jeśli naprawię tę literówkę, a następnie ponownie utworzę błąd składniowy w pakiecie Acme / Demo, wówczas program obsługi błędów Symfony pojawi się zgodnie z oczekiwaniami. I wreszcie, jeśli naprawię wszystkie literówki (strona działa), a następnie ponownie utworzę tę samą literówkę (ponownie w Acme / Bundle), otrzymam złą bramę.

Czy masz na to jakiś pomysł?

jchatard
źródło
Jakakolwiek aktualizacja? Mam ten sam problem
Kevin Robatel
Tutaj również aktualizacje
Zaki Aziz,
Jaka linia pojawia się w pliku nginx error.log, gdy pojawia się błąd błędnej bramy? Jest to 90% błędne wskazanie na gniazdo PHP-FPM. Czy możesz również pokazać nam swoją konfigurację nginx i konfigurację puli PHP-FPM, której używasz?
Bert

Odpowiedzi:

1

Zdarzyło mi się to wczoraj. Był to błąd podczas przekazywania z nginx do php5-fpm. Okazało się, że usługa php-fpm została skonfigurowana do nasłuchiwania na niewłaściwym gnieździe.

W /etc/php5/php-fpm.conf zmieniłem na:

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

i we wszystkich plikach / etc / nginx / upewnij się, że fastcgi_pass unix: /var/run/php5-fpm.sock

HTH

windsor
źródło
Nie, moja konfiguracja działa, ponieważ mogę korzystać z aplikacji. Opisałem tylko ten konkretny scenariusz.
jchatard
Spróbuj zmienić bufory. stackoverflow.com/questions/27173945/…
Ryan
0

Dokładny problem można śledzić, sprawdzając dzienniki nginx.

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

502 jest dlatego, że istnieje pewien problem z połączeniem z procesem php-fpm. Dziennik może dostarczyć więcej szczegółów. Jeśli chcesz wyodrębnić dziennik, wspomnij o oddzielnym logu_błędu pod lokalizacją aplikacji php, np

    location <name> {

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

    }

(jeśli nginx próbuje połączyć się z innym portem / phpfpm / socket, możesz uzyskać odpowiedź z tego)

Anto
źródło