Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-Fehlerstufe festlegen

PHP-Fehlerstufe festlegen

王林
王林Original
2019-09-26 17:40:155872Durchsuche

PHP-Fehlerstufe festlegen

Einstellung der PHP-Fehlerstufe

In php.ini können Sie die Alarmstufe des Servers für Fehler festlegen. Standardmäßig meldet PHP alle Fehler außer Benachrichtigungen. Die Fehlermeldeebene wird durch einige vordefinierte Konstanten festgelegt,

Syntax:

int error_reporting ( [int level] )

Wenn die Parameterebene nicht angegeben ist, wird die aktuelle Fehlermeldeebene verwendet zurückgegeben. Die folgenden Elemente sind mögliche Werte der Ebene:

PHP-Fehlerstufe festlegen

In der Datei php.ini enthält der Standardbericht alle Fehler außer Benachrichtigungen wie folgt Anweisungseinstellungen:

error_reporting = E_ALL & ~ (E_NOTICE)

Im obigen Ausdruck steht das Symbol „&“ für die Nebeneinanderstellung mehrerer Bedingungen und „~“ für die Negation, was NICHT bedeutet. Wenn Sie die Warnmeldung ignorieren möchten, können Sie die folgende Anweisung festlegen:

error_reporting = E_ALL & ~(E_NOTICE) & ~(E_WARNING)

In der Datei php.ini lauten die fehlerbezogenen Einstellungen wie folgt:

(1)error_reporting, Fehlerstufe festlegen

(2)display_errors, ob Fehlerberichte angezeigt werden sollen, auf ON stellen, um alle Fehlermeldungen zu öffnen, auf OFF setzen, um alle Fehlermeldungen zu schließen

(3)log_errors, die Standardeinstellung ist OFF, ob Fehlerprotokolle aufgezeichnet werden sollen;

(4) track_errors, die Standardeinstellung ist OFF, diese Option kann helfen, Fehler im Code zu beheben, anstatt PHP ihre Fehler bereitstellen zu lassen Standardfunktionen.

Fehlerberichte für PHP
Die Datei php.ini enthält viele Konfigurationseinstellungen. Sie sollten Ihre php.ini-Datei eingerichtet und im entsprechenden Verzeichnis abgelegt haben, wie in der Dokumentation zur Installation von PHP und Apache2 unter Linux gezeigt. Es gibt zwei Konfigurationsvariablen, die Sie beim Debuggen von PHP-Anwendungen beachten sollten. Hier sind die beiden Variablen und ihre Standardwerte:

display_errors = Off
error_reporting = E_ALL

Die aktuellen Standardwerte dieser beiden Variablen können durch Suchen in der Datei php.ini gefunden werden. Der Zweck der Variable display_errors liegt auf der Hand – sie teilt PHP mit, ob Fehler angezeigt werden sollen. Der Standardwert ist Aus. Um den Entwicklungsprozess jedoch zu vereinfachen, setzen Sie diesen Wert auf Ein:

display_errors = On

Der Standardwert der Variable error_reporting ist E_ALL. Diese Einstellung zeigt alles von schlechten Codierungspraktiken über harmlose Tipps bis hin zu Fehlern. E_ALL ist für Entwicklungszwecke etwas zu granular, da es auch Hinweise auf kleine Dinge (z. B. nicht initialisierte Variablen) auf dem Bildschirm anzeigt, was die Ausgabe des Browsers durcheinander bringt. Ich möchte nur Fehler und schlechte Codierungspraktiken sehen, aber keine harmlosen Tipps. Ersetzen Sie also den Standardwert von error_reporting durch den folgenden Wert:

error_reporting = E_ALL & ~E_NOTICE

Starten Sie Apache neu und schon sind Sie fertig. Als Nächstes erfahren Sie, wie Sie dasselbe auf Apache tun.

Fehlerberichterstattung auf dem Server

Je nachdem, was Apache tut, funktioniert das Aktivieren der Fehlerberichterstattung in PHP möglicherweise nicht, da es möglicherweise mehrere PHP-Versionen gibt. Manchmal ist es schwierig zu sagen, welche PHP-Version Apache verwendet, da Apache nur eine php.ini-Datei anzeigen kann. Nicht zu wissen, welche php.ini-Datei Apache verwendet, um sich selbst zu konfigurieren, stellt ein Sicherheitsproblem dar. Es gibt jedoch eine Möglichkeit, PHP-Variablen in Apache so zu konfigurieren, dass die richtige Fehlerstufe eingestellt wird. Außerdem ist es eine gute Idee zu wissen, wie man diese Konfigurationsvariablen auf der Serverseite so setzt, dass sie die Datei php.ini überschreiben oder vorwegnehmen und so ein höheres Maß an Sicherheit bieten.

Bei der Konfiguration von Apache sollten Sie bereits mit der Grundkonfiguration in der Datei http.conf in /conf/httpd.conf vertraut gemacht worden sein. Um das zu tun, was bereits in der php.ini-Datei erledigt ist, fügen Sie die folgenden Zeilen zu httpd.conf hinzu und überschreiben alle php.ini-Dateien:

php_flag   display_errors         on
php_value error_reporting       2039

Dadurch wird die php.ini-Datei für display_errors bereits überschrieben. Das Flag to gesetzt und der Wert von error_reporting. Der Wert 2039 steht für E_ALL & ~E_NOTICE. Wenn Sie lieber E_ALL verwenden möchten, legen Sie den Wert auf 2047 fest. Auch hier müssen Sie Apache noch neu starten.

Als nächstes testen Sie die Fehlerberichterstattung auf dem Server.

In Bezug auf die Funktion error_reporting() kann sie einige Fehlermeldungen blockieren, aber Fehler, die durch den PHP-Kern verursacht werden, können nicht blockiert werden, da durch den PHP-Kern verursachte Fehler direkt PHP verursachen Die Datei Die Kompilierung ist fehlgeschlagen, weil das Schreibformat nicht den Kodierungsregeln von PHP entsprach und Fehler verursacht hat, die nicht blockiert werden können.

Die häufigsten sind wie folgt:

// Turn off all error reporting;关闭所有的错误
error_reporting(0);
// Report simple running errors;报告一个简单的运行错误
error_reporting(E_ERROR | E_WARNING | E_PARSE);
// Reporting E_NOTICE can be good too (to report uninitialized
// variables or catch variable name misspellings …);包括报告一些未初始化的变量或捕捉变量名的拼写错误
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
// Report all errors except E_NOTICE
// This is the default value set in php.ini;报告所有的错误但不包括E_NOTICE
error_reporting(E_ALL ^ E_NOTICE);
// Report all PHP errors (bitwise 63 may be used in PHP 3);报告所有的错误
error_reporting(E_ALL);
// Same as error_reporting(E_ALL);同上
ini_set(’error_reporting’, E_ALL);

Empfohlenes Tutorial: PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonPHP-Fehlerstufe festlegen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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