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.