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 = jaerror_log = log/error_log
Code kopierenCodebeispiel:
log_errors = Onerror_log = "/usr /local/lnmp/php/ var/log/error_log"
error_reporting=E_ALL&~E_NOTICE
Wenn PHP einen Fehler ausführt, können Sie das Fehlerprotokoll sehen "/usr/local/lnmp/ php/var/log/error_log"
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.
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