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ł?
Odpowiedzi:
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
źródło
Dokładny problem można śledzić, sprawdzając dzienniki nginx.
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
(jeśli nginx próbuje połączyć się z innym portem / phpfpm / socket, możesz uzyskać odpowiedź z tego)
źródło