Come posso scoprire perché il mio php5-fpm non è stato avviato?


10

ottengo il timeout del gateway 504 quando provo a raggiungere il mio server un piccolo controllo non ha trovato alcun registro sui registri php5-fpm, ma solo per essere sicuro, ho provato a riavviarlo. quando sto cercando di riavviarlo:

sudo service php5-fpm restart

Capisco [fail] ma quando lo faccio

sudo service php5-fpm stop
sudo service php5-fpm start

Non ricevo alcun errore.

come posso investigarlo se non ci sono registri? cosa posso fare?

Risposte:


17

Hai controllato il tuo file error_log per php-fpm ? La posizione di quel file deve essere dichiarata nel tuo php-fpm.conf (nella configurazione di Ubuntu è /etc/php5/fpm/php-fpm.conf, il file di registro è / var / log / php5-fpm / log), controlla anche il tuo log_level , se disabilitato (; log_level), si prega di abilitarlo e modificarlo nel debug . Dopodiché prova a riavviare il servizio php5-fpm e controlla i tuoi log.

Puoi anche provare a eseguire php5-fpm in modalità primo piano:

# php5-fpm -y /etc/php5/fpm/php-fpm.conf

Forse questo ti mostra qualcosa di interessante.


1
Nel mio caso, questo comando ha avviato php5-fpm mentre service php5-fpm startnon lo ha fatto. Grazie!
David Thomas,

Davis, sembra funzionare per me +1! Ma .. jamzed mi ha dato la soluzione, ho trovato un errore +1! grazie a tutti!
Tenaciousd93,

Se si avvia FPM utilizzando un processo di avvio, i registri di avvio di php-fpm verranno scritti in / var / log / upstart /
Ashwin Date

Per php7.0 usarephp-fpm7.0 -F -c /etc/php/7.0/fpm/php-fpm.conf
Yadvendar l'

4

Procedura di risoluzione dei problemi standard:

  • Controlla il file di registro. Se non sai dove si trova controlla la configurazione o per capire con certezza come trovare il pid ps aux | grep php-fpm, quindi fallo lsof -p $PID | grep log(ometti il ​​grep se non mostra nulla).
  • Il 99% dei file di registro tempo ti mostrerà la causa. In caso contrario, cerca un livello di registrazione nella configurazione, aumentalo e riprova.
  • Forse si chiude immediatamente e non è possibile ottenere il PID per ispezionare il processo. Puoi anche provare ad avviare il processo in primo piano, ma questo significa capire quali opzioni della riga di comando devi usare. Di solito devi solo indicarlo alla tua configurazione esistente.
  • Se né il file di registro né lo stdout / stderr (output in primo piano) contengono alcun indizio, è tempo di tracciare ... ma questo è un altro post.

+1 bel modo per trovare il file di registro!
Deweydb,

3

Questa nota mi ha aiutato: https://bugs.launchpad.net/nginx/+bug/1366651

Nel mio caso, l'aggiornamento a nginx> 1.6.1 i parametri passati a php5-fpm si trovano in fastcgi.conf anziché in fastcgi_params, dando come risultato un PHP che restituisce sempre 200 (ok), ma mai alcun contenuto, perché il SCRIPT_FILENAME non è stato più impostato.

Spero che aiuti anche qualcun altro.


2

Per me, il problema era che il mio php-fpm.conffile non utilizzava il nome file di configurazione predefinito - era chiamato /etc/php5/fpm/php5-fpm.conf( php5-fpm.confvs php-fpm.conf)

php5-fpm -t  

[26-Jul-2014 22:39:16] ERROR: failed to open configuration file '/etc/php5/fpm/php-fpm.conf': No such file or directory (2)
[26-Jul-2014 22:39:16] ERROR: failed to load configuration file '/etc/php5/fpm/php-fpm.conf'
[26-Jul-2014 22:39:16] ERROR: FPM initialization failed

Ho rinominato il file conf in php-fpm.confe questo ha risolto il problema.

sudo mv /etc/php5/fpm/php5-fpm.conf /etc/php5/fpm/php-fpm.conf
sudo service php5-fpm restart
 * Restarting PHP5 FastCGI Process Manager php5-fpm                                                                           [ OK ]

0

Ho riscontrato questo problema senza file di registro, quindi ho notato che stavo accedendo all'URL tramite HTTPS anziché HTTP e che il protocollo non era stato impostato in Nginx, quindi PHP5-FPM non riceveva il traffico.

Potrebbe aiutare qualcuno.


0

Può capitare che su un dist-upgrade di Ubuntu il pacchetto php5-fpm venga disinstallato perché php 7 usa invece php-fpm. prova a eseguirlo sulla console:

php5-fpm

Se non esiste, probabilmente usi già php 7, quindi installa

apt-get install php-fpm

che installerà la versione php7

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.