Heim >Backend-Entwicklung >PHP-Tutorial >Nginx PHP-FPM-Konfigurationsmethode zur Ausgabe des PHP-Fehlerprotokolls

Nginx PHP-FPM-Konfigurationsmethode zur Ausgabe des PHP-Fehlerprotokolls

WBOY
WBOYOriginal
2016-07-29 09:15:521439Durchsuche

In diesem Artikel wird erläutert, wie PHP-FPM für die Ausgabe von PHP-Fehlerprotokollen auf dem Nginx-Server konfiguriert wird. Ich hoffe, dass er für alle hilfreich ist.

Da Nginx nur ein Webserver ist, zeichnet das Zugriffsprotokoll von Nginx nur die aufgerufenen Seiten auf und es gibt kein PHP Fehlerprotokollinformationen.

nginx sendet die PHP-Anfrage zur Verarbeitung an den PHP-FPM-Fastcgi-Prozess Sie können das Fehlerprotokoll von PHP auch nicht im Protokoll sehen.

Grund:
Die Konfigurationsdatei von php-fpm, php-fpm.conf, schließt standardmäßig die Fehlerausgabe des Arbeitsprozesses und leitet sie direkt nach /dev/ um. null, wir befinden uns also im Nginx-Fehler Weder das Protokoll noch das Fehlerprotokoll von PHP-FPM können das Fehlerprotokoll von PHP sehen.

Möglichkeiten zur Lösung des Problems, dass PHP-FPM keine PHP-Fehlerprotokolle unter Nginx aufzeichnet:

1. Ändern Sie die Konfiguration in php-fpm.conf und fügen Sie

Code kopierenCodebeispiel:

catch_workers_output = ja

error_log = log/error_log

2. Ändern Sie die Konfiguration in PHP. ini, wenn nicht, fügen Sie es hinzu


Code kopierenCodebeispiel:

log_errors = On

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

3. Starten Sie php-fpm neu,

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

Bitte beachten Sie:

1. Der Parameter php_admin_value[error_log] in php-fpm.conf überschreibt den Parameter error_log in PHP. ini
stellen Sie also sicher, dass die endgültige error_log-Datei, die Sie in phpinfo() sehen, über Schreibrechte verfügt und der Parameter php_admin_value[error_log] nicht gesetzt ist, andernfalls wird das Fehlerprotokoll in das Fehlerprotokoll von php-fpm ausgegeben.

Nginx PHP-FPM-Konfigurationsmethode zur Ausgabe des PHP-Fehlerprotokolls

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


Nginx PHP-FPM-Konfigurationsmethode zur Ausgabe des PHP-Fehlerprotokolls

3 So ändern Sie das PHP-Fehlerprotokoll Ausgabe auf der Seite oder dem Bildschirmphp.ini ändern

Code kopierenCodebeispiel:

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 = // Legen Sie den Protokolldateinamen fest
Ändern Sie die obige Konfiguration im Programm


Code kopierenCodebeispiel:

ini_set("display_errors",0)

ini_set("error_reporting",E_ALL); //Dieser Wert Es scheint eine PHP-Konstante zu sein
ini_set("error_log","")
ini_set("log_errors",1);
4. So geben Sie das PHP-Fehlerprotokoll an nginx aus

Wenn in PHP 5.3.8 und früheren Versionen während des Benutzerzugriffs auf PHP, das über FastCGI ausgeführt wird, ein Fehler auftritt, wird dieser zunächst in das PHP-Fehlerprotokoll geschrieben.
Wenn das PHP-Fehlerprotokoll nicht geschrieben werden kann, wird der Fehlerinhalt angezeigt an die FastCGI-Schnittstelle zurückgegeben, und Nginx zeichnet es dann im Fehlerprotokoll von Nginx auf, nachdem die Fehlerrückgabe von FastCGI empfangen wurde.
In PHP 5.3.9 und späteren Versionen versucht PHP nur, in PHP zu schreiben, nachdem ein Fehler aufgetreten ist. Im Fehlerprotokoll Wenn dies fehlschlägt, kehrt es nicht mehr zu FastCGI zurück und das Fehlerprotokoll wird an das 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 PHP-Fehlerprotokoll in der Konfigurationsdatei kann vom PHP-Worker-Prozess nicht geschrieben werden.​
Das Obige stellt die Konfigurationsmethode von nginx php-fpm zur Ausgabe des PHP-Fehlerprotokolls vor, einschließlich der relevanten Inhalte. Ich hoffe, dass es für Freunde hilfreich ist, die an PHP-Tutorials interessiert sind.

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