Heim > Artikel > Backend-Entwicklung > So aktivieren Sie das PHP-Apache-Fehlerprotokoll
So aktivieren Sie das PHP-Apache-Fehlerprotokoll: Ändern Sie zuerst die Konfiguration in php-fpm.conf; ändern Sie dann die Konfiguration in php.ini auf „log_errors = On“ und starten Sie schließlich php-fpm neu.
Empfohlen: „PHP-Video-Tutorial“
nginx und Apache ermöglichen PHP-Fehlerprotokollierung
LNMP-Entwicklungsumgebung, die kürzlich lokal erstellt wurde. Um die normale Entwicklung des Frontends während der Entwicklung nicht zu beeinträchtigen, werden einige Fehlermeldungen in der php.ini in PHP blockiert. Dies wirkt sich jedoch auf einige Probleme in der Back-End-Entwicklung aus, z. B. darauf, dass einige Probleme in der Entwicklung nicht rechtzeitig behoben werden können. Nginx unterscheidet sich von Apache. In Apache können Sie das PHP-Fehlerprotokoll direkt angeben Es kann in PHP ausgeführt werden. Die Fehlerinformationen in PHP werden direkt in das Fehlerprotokoll von PHP eingegeben, das einfach abgefragt werden kann.
In Nginx sieht es so aus: Nginx zeichnet nur Zugriffsprotokolle für Seitenbesuche auf. Es werden keine PHP-Fehlerprotokollinformationen angezeigt. Nginx sendet die PHP-Anfrage zur Verarbeitung an den PHP-FPM-Fastcgi-Prozess. Der Standardwert von PHP-FPM gibt nur die Fehlermeldung von PHP-FPM aus, und das Fehlerprotokoll von PHP kann nicht im Fehlerprotokoll von PHP-FPM angezeigt werden.
Der Grund dafür ist, dass die PHP-FPM-Konfigurationsdatei php-fpm.conf standardmäßig die Fehlerausgabe des Arbeitsprozesses deaktiviert und sie direkt nach /dev/null umleitet, sodass wir sowohl ein Nginx-Fehlerprotokoll als auch ein PHP-FPM-Fehlerprotokoll haben . Ich kann das PHP-Fehlerprotokoll nicht sehen.
Daher müssen wir die folgenden Einstellungen vornehmen, um zu sehen, dass php-fpm keine PHP-Fehlerprotokolle unter nginx aufzeichnet:
1 Ändern Sie die Konfiguration in php-fpm.conf, fügen Sie bitte hinzu:
[global] ; Note: the default prefix is /usr/local/php/var error_log = log/php_error_log [www] catch_workers_output = yes
2. Ändern Sie die Konfiguration in php.ini, wenn nicht, fügen Sie hinzu:
log_errors = On error_log = "/usr/local/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 in „/usr/local/lnmp/php/var“ sehen /log/ php_error_log"
Wenn es erscheint:
[root@localhost etc]# service php-fpm restart Gracefully shutting down php-fpm . done Starting php-fpm [17-Apr-2014 18:40:52] ERROR: [/usr/local/php/etc/php-fpm.conf:5] unknown entry 'catch_workers_ [17-Apr-2014 18:40:52] ERROR: failed to load configuration file '/usr/local/php/etc/php-fpm.conf' [17-Apr-2014 18:40:52] ERROR: FPM initialization failed failed
Dann schreiben Sie bitte im ersten Schritt sorgfältig die Konfiguration in die entsprechende Gruppe, sonst erscheint der obige Fehler:
ERROR: [/usr/local/php/etc/php-fpm.conf:5] unknown entry ‘catch_workers_output' apache display_errors
Fehlerecho, häufige Ausdrücke Entwicklungsmodus, aber Viele Anwendungen vergessen, diese Option in der Produktionsumgebung zu deaktivieren. Fehlerechos können viele vertrauliche Informationen preisgeben, was den nächsten Angriff des Angreifers erleichtert. Es wird empfohlen, diese Option zu deaktivieren.
display_errors = On
Wenn ein Fehler auftritt, wird ein Fehler gemeldet und eine Fehlermeldung angezeigt.
dispaly_errors = Off
Wenn beim Schließen ein Fehler auftritt, wird ein Serverfehler angezeigt. Es wird jedoch keine Fehlermeldung angezeigt
log_errors
Verwenden Sie dies einfach in einer formalen Umgebung und zeichnen Sie die Fehlerinformationen im Protokoll auf. Gerade rechtzeitig, um das Fehlerecho auszuschalten.
Sobald ein Produkt in Betrieb genommen wird, müssen PHP-Entwickler zunächst die Option display_errors deaktivieren, um Angriffen durch Hacker aufgrund der durch diese Fehler offengelegten Pfade, Datenbankverbindungen, Datentabellen und anderen Informationen zu entgehen.
Nachdem ein Produkt in Betrieb genommen wurde, ist es unvermeidlich, dass Fehlermeldungen angezeigt werden. Wie kann man also diese für Entwickler sehr nützlichen Informationen aufzeichnen?
Aktivieren Sie einfach PHPs log_errors. Standardmäßig wird es in der Protokolldatei des WEB-Servers aufgezeichnet, z. B. in der Datei error.log von Apache.
Natürlich können Sie Fehlerprotokolle auch in bestimmten Dateien aufzeichnen.
Das obige ist der detaillierte Inhalt vonSo aktivieren Sie das PHP-Apache-Fehlerprotokoll. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!