Heim  >  Artikel  >  Backend-Entwicklung  >  Was soll ich tun, wenn PHP-FPM unter Nginx keine PHP-Fehlerprotokolle aufzeichnet?

Was soll ich tun, wenn PHP-FPM unter Nginx keine PHP-Fehlerprotokolle aufzeichnet?

coldplay.xixi
coldplay.xixiOriginal
2020-07-24 13:34:053422Durchsuche

So lösen Sie das Problem, dass PHP-FPM unter Nginx keine PHP-Fehlerprotokolle aufzeichnet: 1. Ändern Sie die Konfiguration in [php-fpm.conf], wenn nicht, fügen Sie sie hinzu; [php.ini], wenn nicht, dann hinzufügen; 3. Starten Sie [php-fpm] neu.

Was soll ich tun, wenn PHP-FPM unter Nginx keine PHP-Fehlerprotokolle aufzeichnet?

So lösen Sie das Problem, dass PHP-FPM kein PHP-Fehlerprotokoll unter Nginx aufzeichnet:

1. Änderungskonfiguration in php-fpm.conf, wenn nicht, fügen Sie

catch_workers_output = yes
error_log = log/error_log
hinzu

2. Ändern Sie die Konfiguration in php.ini, wenn nicht, fügen Sie

log_errors = On
error_log = "/usr/local/lnmp/php/var/log/error_log"
error_reporting=E_ALL&~E_NOTICE
hinzu

3. Starten Sie php-fpm neu

Wenn PHP einen Fehler ausführt, können Sie das Fehlerprotokoll in „/usr/local/lnmp/php/var/log/error_log“ sehen.

Bitte beachten Sie:

1. Der php-fpm.conf-Parameter in php_admin_value[error_log] überschreibt den error_log-Parameter in php.ini

Stellen Sie sicher, dass Sie sich in phpinfo() befinden. Die endgültige error_log-Datei, die in angezeigt wird, verfügt über Schreibberechtigungen und legt den Parameter php_admin_value[error_log] nicht fest. Andernfalls wird das Fehlerprotokoll im Fehlerprotokoll php-fpm ausgegeben.

2. Der Speicherort von php.ini kann nicht gefunden werden. Verwenden Sie PHPs phpinfo(), um die Ergebnisse anzuzeigen.

3 So ändern Sie das PHP-Fehlerprotokoll, damit es nicht auf der Seite ausgegeben wird screen

Ändern Sie php.ini

  • display_errors = off //Fehlerinformationen nicht anzeigen (nicht auf der Seite oder dem Bildschirm ausgeben)

  • log_errors = on / /Fehlerinformationen aufzeichnen (in Protokolldatei speichern)

  • error_reporting = E_ALL //Alle Fehlerinformationen erfassen

  • error_log = //Name der Protokolldatei festlegen

Ändern Sie die obige Konfiguration im Programm

ini_set("display_errors",0)
ini_set("error_reporting",E_ALL); //这个值好像是个PHP的常量
ini_set("error_log","<日志文件名>")
ini_set("log_errors",1);

4. So geben Sie das PHP-Fehlerprotokoll in den Nginx-Fehler aus log

in PHP 5.3 .8 und früheren Versionen wird, wenn PHP über FastCGI läuft und während des Benutzerzugriffs ein Fehler auftritt, dieser zuerst in das Fehlerprotokoll von PHP geschrieben

Wenn das Fehlerprotokoll von PHP nicht geschrieben werden kann, Der Fehlerinhalt wird zurückgegeben. Geben Sie die FastCGI-Schnittstelle an, und Nginx zeichnet ihn dann im Nginx-Fehlerprotokoll auf, nachdem er die Fehlerrückgabe von FastCGI erhalten hat.

In PHP 5.3.9 und späteren Versionen versucht PHP nur, in PHP zu schreiben Wenn ein Fehler auftritt, wird das Fehlerprotokoll nicht an FastCGI zurückgegeben und das Fehlerprotokoll wird im Fehlerprotokoll von PHP-FPM ausgegeben.

Wenn Sie also das PHP-Fehlerprotokoll in das Nginx-Fehlerprotokoll ausgeben möchten, müssen Sie eine Version vor PHP5.3.8 verwenden, und das Fehlerprotokoll von PHP in der Konfigurationsdatei ist für den PHP-Worker-Prozess nicht beschreibbar

Verwandte Lernempfehlungen: PHP-Programmierung vom Anfänger bis zum Experten

Das obige ist der detaillierte Inhalt vonWas soll ich tun, wenn PHP-FPM unter Nginx keine PHP-Fehlerprotokolle aufzeichnet?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn