Heim >Backend-Entwicklung >PHP-Tutorial >PHP-Fehlermeldungskonfiguration
Fehlerecho wird häufig im Entwicklungsmodus verwendet, aber viele Anwendungen vergessen, diese Option in der offiziellen Umgebung zu deaktivieren. Fehlerechos können viele vertrauliche Informationen preisgeben, was den nächsten Angriff des Angreifers erleichtert. Es wird empfohlen, diese Option
display_errors
zu deaktivieren. Fehlerecho wird häufig im Entwicklungsmodus verwendet, aber viele Anwendungen vergessen, diese Option in der formalen Umgebung 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 = Ein
Wenn im eingeschalteten Zustand ein Fehler auftritt, wird ein Fehler gemeldet und eine Fehlermeldung angezeigt.
dispaly_errors = Aus
Im ausgeschalteten Zustand wird ein Fehler gemeldet. Die Eingabeaufforderung lautet: Serverfehler. Es erscheint jedoch keine Fehlermeldung
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 Angriffe von Hackern aufgrund der durch diese Fehler offengelegten Pfade, Datenbankverbindungen, Datentabellen und anderen Informationen zu vermeiden.
Nachdem ein Produkt in Betrieb genommen wurde, treten zwangsläufig Fehlermeldungen auf. Wie kann man also diese Informationen aufzeichnen, die für Entwickler sehr nützlich sind?
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 Fehlerprotokolle auch in bestimmten Dateien aufgezeichnet werden.
# vim /etc/php.inidisplay_errors = Off
log_errors = On
error_log = /var/log/php-error.log
Sie können auch error_log = syslog festlegen , damit diese Fehlermeldungen im Betriebssystemprotokoll aufgezeichnet werden.
display_errors = Off //display bedeutet auf Chinesisch anzeigen, also bedeutet display_error=off, dass keine Fehler angezeigt werden!
error_reporting legt die Stufe der Fehlermeldungsberichterstattung fest
2047 Ich erinnere mich, dass es E_ALL sein sollte.
php.ini
Die Datei enthält viele Konfigurationseinstellungen. Sie sollten Ihre php.ini-Datei bereits eingerichtet und im entsprechenden Verzeichnis abgelegt haben, genau wie bei der Installation von PHP und Apache unter Linux
2 (siehe Ressourcen). Es gibt zwei Konfigurationsvariablen, die Sie beim Debuggen von PHP-Anwendungen beachten sollten. Im Folgenden sind diese beiden Variablen und ihre Standardwerte aufgeführt:
display_errors = Off //Alle Fehlermeldungen ausschalten Wenn diese Option aktiviert ist, werden alle Fehlermeldungen angezeigt.
error_reporting = E_ALL
E_ALL deckt alles ab, von schlechten Codierungspraktiken über harmlose Tipps bis hin zu Fehlern. E_ALL ist für den Entwicklungsprozess etwas zu detailliert, da es auch Eingabeaufforderungen auf dem Bildschirm für einige kleine Dinge anzeigt (z. B. nicht initialisierte Variablen), was die Ausgabe des Browsers durcheinander bringt
, daher wird die Verwendung von 2047 nicht empfohlen , ändern Sie am besten den Standardwert. Für: error_reporting = E_ALL & ~E_NOTICE
Lösung für den Fehler von display_errors = Off in PHP.ini
Problem:
Display_errors = Off wurde eindeutig im PHP eingestellt Einstellungsdatei php.ini, aber während des laufenden Prozesses erscheint auf der Webseite weiterhin eine Fehlermeldung.
Lösung:
Überprüfen Sie log_errors=
Laut offizieller Aussage muss die Datei „error_log“ angegeben werden, wenn diese log_errors auf „On“ gesetzt ist. Wenn sie nicht angegeben ist oder die angegebene Datei keine Schreibberechtigung hat, tritt der Fehler trotzdem auf.
Außerhalb des normalen Ausgabekanals wird dadurch auch das angegebene Off von display_errors ungültig und die Fehlermeldung wird weiterhin ausgedruckt. Also log_errors =
Aus, das Problem ist gelöst.
Es wird oft gesehen, dass error_reporting (7) bedeutet: Festlegen der Ebene der Fehlermeldungsberichterstattung.
Wertkonstante
1 E_ERROR
2 E_WARNING
4 E_PARSE
8 E_NOTICE
16 E_CORE_ERROR
32 E_CORE_WARNING
64 E_COMPILE_ERROR
128 NING
256 E_USER_ERROR < ?php
//Fehlerberichterstattung deaktivieren
error_reporting(0);
//Laufzeitfehler melden
error_reporting(E_ERROR | E_WARNING | E_PARSE);
//Alle Fehler melden
error_reporting(E_ALL);
Das Obige stellt die PHP-Fehlermeldungskonfiguration einschließlich des relevanten Inhalts vor. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.