Wie kann ich herausfinden, warum mein php5-fpm nicht gestartet werden konnte?


10

Ich bekomme 504 Gateway Timeout, wenn ich versuche, meinen Server zu erreichen. Bei einer kleinen Überprüfung wurden keine Protokolle in PHP5-Fpm-Protokollen gefunden, aber nur um sicherzugehen, habe ich versucht, es neu zu starten. wenn ich versuche es neu zu starten:

sudo service php5-fpm restart

Ich bekomme [fail] aber wenn ich es tue

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

Ich bekomme keinen Fehler.

Wie kann ich das untersuchen, wenn keine Protokolle vorhanden sind? Was kann ich tun?

Antworten:


17

Haben Sie Ihre error_log- Datei auf php-fpm überprüft ? Der Speicherort dieser Datei sollte in Ihrer php-fpm.conf deklariert sein (in der Ubuntu-Konfiguration lautet /etc/php5/fpm/php-fpm.conf, die Protokolldatei lautet / var / log / php5-fpm / log) log_level , falls deaktiviert (; log_level), aktivieren Sie es bitte und ändern Sie es in das Debug . Starten Sie danach den php5-fpm-Dienst neu und überprüfen Sie Ihre Protokolle.

Sie können auch versuchen, php5-fpm im Vordergrundmodus auszuführen:

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

Vielleicht zeigt dir das etwas Interessantes.


1
In meinem Fall hat dieser Befehl php5-fpm gestartet, während service php5-fpm startdies nicht der Fall war . Vielen Dank!
David Thomas

Davis, es scheint für mich zu funktionieren +1! Aber .. jamzed gab mir die Lösung, ich fand einen Fehler +1! Danke euch allen!
Tenaciousd93

Wenn Sie FPM mit einem Upstart-Job starten, werden die Startprotokolle von php-fpm in / var / log / upstart /
Ashwin geschrieben. Datum

Für php7.0 verwenden Siephp-fpm7.0 -F -c /etc/php/7.0/fpm/php-fpm.conf
Yadvendar

4

Standardverfahren zur Fehlerbehebung:

  • Überprüfen Sie die Protokolldatei. Wenn Sie nicht wissen, wo es sich befindet, überprüfen Sie die Konfiguration oder um sicherzugehen, dass Sie die PID mit finden ps aux | grep php-fpm, dann tun Sie dies lsof -p $PID | grep log(lassen Sie das Grep weg, wenn es nichts anzeigt).
  • 99% der Zeitprotokolldateien zeigen Ihnen die Ursache. Wenn nicht, suchen Sie in der Konfiguration nach einer Protokollierungsstufe, erhöhen Sie diese und versuchen Sie es erneut.
  • Möglicherweise wird es sofort beendet und Sie können die PID nicht dazu bringen, den Prozess zu überprüfen. Sie können auch versuchen, den Prozess im Vordergrund zu starten. Dies bedeutet jedoch, dass Sie herausfinden müssen, welche Befehlszeilenoptionen Sie verwenden müssen. Normalerweise müssen Sie es nur auf Ihre vorhandene Konfiguration verweisen.
  • Wenn weder die Protokolldatei noch stdout / stderr (Vordergrundausgabe) Hinweise enthalten, ist es Zeit für Strace ... aber das ist ein anderer Beitrag.

+1 schöne Möglichkeit, die Protokolldatei zu finden!
Deweydb

3

Dieser Hinweis hat mir geholfen: https://bugs.launchpad.net/nginx/+bug/1366651

In meinem Fall befinden sich beim Aktualisieren auf nginx> 1.6.1 die Parameter, die an php5-fpm übergeben werden, in fastcgi.conf anstatt in fastcgi_params, was zu einem PHP führt, das immer 200 (ok) zurückgibt, aber niemals Inhalt, weil die SCRIPT_FILENAME wurde nicht mehr festgelegt.

Ich hoffe es hilft auch jemand anderem.


1

Für mich war das Problem, dass meine php-fpm.confDatei nicht den Standard-Konfigurationsdateinamen verwendete - sie wurde /etc/php5/fpm/php5-fpm.conf( php5-fpm.confvs php-fpm.conf) genannt.

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

Ich habe die conf-Datei in umbenannt php-fpm.confund das Problem wurde behoben.

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

Ich hatte das Problem, dass keine Protokolldateien vorhanden waren, und bemerkte dann, dass ich über HTTPS anstelle von HTTP auf die URL zugegriffen habe und dass das Protokoll in Nginx nicht eingerichtet wurde, sodass PHP5-FPM den Datenverkehr nicht abruft.

Könnte jemandem helfen.


0

Es kann vorkommen, dass bei einem Ubuntu-Dist-Upgrade das Paket php5-fpm deinstalliert wird, da php 7 stattdessen php-fpm verwendet. Versuchen Sie dies auf der Konsole auszuführen:

php5-fpm

Wenn es nicht existiert, verwenden Sie wahrscheinlich bereits PHP 7, also installieren Sie es

apt-get install php-fpm

welches die php7 version installieren wird

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.