Nginx + PHP-FPM producono 502 gateway errati invece di errori fatali?


11

Attualmente sto testando Symfony2 con Nginx e PHP-FPM. Uso anche Xdebug.

Symfony2 viene fornito con un pacchetto Demo, volevo testare la nuova gestione degli errori fatali fornita con Symfony 2.2.0 creando un errore di sintassi nel pacchetto Acme / Demo. Perché lo faccio, la risposta del server è 502 gateway non valido.

Ma se commetto un errore di sintassi nel file app_dev.php (quindi prima che il framework venga attivato), Xdebug mi informa dell'errore fatale.

E sorprendentemente, se correggo quel refuso, quindi ricreare l'errore di sintassi nel pacchetto Acme / Demo, il gestore degli errori di Symfony appare come previsto. E infine se una correzione di tutti gli errori di battitura (la pagina funziona) quindi ricrea nuovamente lo stesso errore di battitura (di nuovo in Acme / Bundle), ottengo un gateway non valido.

Hai qualche idea su questo?


Qualsiasi aggiornamento? Ho lo stesso problema
Kevin Robatel,

Qui anche per gli aggiornamenti
Zaki Aziz,

Quale riga appare nel tuo nginx error.log quando ricevi l'errore gateway errato? Questo è un errore del 90% che punta a un socket PHP-FPM. Inoltre, puoi mostrarci la tua configurazione nginx e la configurazione del pool PHP-FPM che usi?
Bert,

Risposte:


1

Questo è successo a me ieri. È stato un errore a passare da nginx a php5-fpm e si è scoperto che il servizio php-fpm era configurato per l'ascolto sul socket sbagliato.

in /etc/php5/php-fpm.conf sono passato a:

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

e in tutto / etc / nginx / assicurati che fastcgi_pass unix: /var/run/php5-fpm.sock

HTH


No, la mia configurazione funziona dal momento che posso usare l'app. È solo su questo scenario specifico, ho descritto.
jchatard,

Prova a cambiare i buffer. stackoverflow.com/questions/27173945/…
Ryan,

0

È possibile tenere traccia del problema esatto controllando i registri nginx.

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

502 è perché c'è qualche problema nella connessione al processo php-fpm. Il registro può darti maggiori dettagli. Se vuoi isolare il registro, menziona il log_errore separato nella posizione della tua applicazione php, come

    location <name> {

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

    }

(se nginx sta tentando di connettersi a porte / phpfpm / socket diversi, potresti ottenere una risposta da questo)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.