Heim > Artikel > Backend-Entwicklung > Wie nginx php-fpm das PHP-Fehlerprotokoll ausgibt
Konfigurationsmethode für PHP-FPM-Ausgabefehler: Öffnen Sie zuerst die Datei „php-fpm.conf“. Fügen Sie dann den Inhalt „error_log = log/error_log“ hinzu. Öffnen Sie dann die Datei „php.ini“ und fügen Sie den Inhalt „log_errors =“ hinzu Ein“ ;Endlich neu starten.
Empfohlen: „PHP-Video-Tutorial“
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 es hilfreich ist an alle geholfen.
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 nicht im Protokoll sehen
Grund: Die Konfigurationsdatei php-fpm.conf von
php-fpm deaktiviert standardmäßig die Fehlerausgabe des Arbeitsprozesses und leitet sie direkt nach /dev/null um, daher verwenden wir 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 unter nginx keine PHP-Fehlerprotokolle aufzeichnet:
1. Ändern Sie die Konfiguration in php-fpm.conf und fügen Sie sie hinzu, wenn sie nicht vorhanden ist
catch_workers_output = yes error_log = log/error_log
2. Ändern Sie die Konfiguration in php.ini und fügen Sie es hinzu, wenn dies nicht der Fall ist
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 ein PHP-Ausführungsfehler auftritt, können Sie das Fehlerprotokoll in „/usr/local/lnmp/php/var/log/“ sehen. error_log"
Bitte beachten Sie:
1. php-fpm Der Parameter php_admin_value[error_log] in .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 dies auch tut Setzen Sie den Parameter php_admin_value[error_log] nicht, sonst wird das Fehlerprotokoll in das Fehlerprotokoll von php-fpm ausgegeben.
2. Der Speicherort von php.ini kann nicht gefunden werden. Verwenden Sie phpinfo() von PHP, um die Ergebnisse anzuzeigen.
3. So ändern Sie das PHP-Fehlerprotokoll, damit es nicht auf der Seite oder dem Bildschirm ausgegeben wird. PHP ändern .ini
display_errors = off //不显示错误信息(不输出到页面或屏幕上) log_errors = on //记录错误信息(保存到日志文件中) error_reporting = E_ALL //捕获所有错误信息 error_log = //设置日志文件名Programm Ändern Sie die obige Konfiguration
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 Fehlerprotokoll von PHP in das Fehlerprotokoll von Nginx aus
Wenn in PHP 5.3.8 und früheren Versionen ein Fehler auftritt, wenn der Benutzer über PHP zugreift FastCGI, es wird zuerst in das Fehlerprotokoll von PHP geschrieben
Wenn das Fehlerprotokoll von PHP nicht geschrieben werden kann, wird der Fehlerinhalt an die FastCGI-Schnittstelle zurückgegeben, und Nginx zeichnet ihn dann im Fehlerprotokoll von Nginx auf, nachdem er die Fehlerrückgabe von erhalten hat FastCGI
In PHP 5.3.9 und höher In dieser Version versucht PHP nur, in das Fehlerprotokoll von PHP zu schreiben, wenn ein Fehler auftritt. Wenn dies fehlschlägt, kehrt es nicht zu FastCGI zurück und das Fehlerprotokoll wird im Fehlerprotokoll von PHP ausgegeben -fpm.
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 ist der detaillierte Inhalt vonWie nginx php-fpm das PHP-Fehlerprotokoll ausgibt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!