Freigabe der PHP-Fehlerprotokollierung
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.ini display_errors = Off log_errors = On error_log = /var/log/php-error.log 另外也可以设定error_log = syslog,使这些错误信息记录到操作系统的日志里。
---------------------------------------------------- --- -------------------
PHP-Fehlerprotokoll Für PHP-Entwickler sollte die Option display_errors sofort deaktiviert werden, sobald ein Produkt in Gebrauch genommen wird, um dies zu vermeiden Von diesen Fehlern betroffen waren die offengelegten Pfade, Datenbankverbindungen, Datentabellen und andere Informationen. Allerdings treten nach der Inbetriebnahme eines Produkts zwangsläufig Fehler auf. Wie kann man also einige Fehlerberichte aufzeichnen, die für Entwickler nützlich sind? Wir können Fehler in separaten Textdateien protokollieren. Die Aufzeichnung von Fehlerprotokollen kann Entwicklern oder Managern dabei helfen, zu überprüfen, ob es Probleme mit dem System gibt. Wenn Sie Fehlerberichte im Programm in das Fehlerprotokoll schreiben müssen, aktivieren Sie einfach die Konfigurationsanweisung log_errors in der PHP-Konfigurationsdatei. Fehlerberichte werden standardmäßig in der Protokolldatei des Webservers protokolliert, beispielsweise in der Fehlerprotokolldatei error.log des Apache-Servers. Natürlich können Sie das Fehlerprotokoll auch in einer angegebenen Datei aufzeichnen oder an das System-Syslog senden. Die Details lauten wie folgt:
1 Verwenden Sie die angegebene Datei, um das Fehlerberichtsprotokoll aufzuzeichnen.
Verwenden Sie die angegebene Datei Zum Aufzeichnen des Fehlerberichtsprotokolls die angegebene Datei verwenden. Das Fehlerberichtsprotokoll verwendet eine angegebene Datei zum Aufzeichnen des Fehlerberichtsprotokolls. Speichern Sie diese Datei unbedingt außerhalb des Dokumentstammverzeichnisses, um die Möglichkeit eines Angriffs zu verringern. Und die Datei muss von dem Benutzer geschrieben werden, der das PHP-Skript ausführt (dem Eigentümer des Webserverprozesses). Nehmen Sie an, dass im Linux-Betriebssystem die Datei error.log im Verzeichnis /usr/local/ als Fehlerprotokolldatei verwendet wird und der Webserver-Prozessbenutzer über Schreibberechtigungen verfügt. Setzen Sie dann in der PHP-Konfigurationsdatei den Wert der error_log-Direktive auf den absoluten Pfad der Fehlerprotokolldatei.
Die Konfigurationsanweisungen in php.ini müssen wie folgt geändert werden:
1. Jeder Fehler, der auftritt, wird an PHP gemeldet.
2. Die obigen Anweisungen werden nicht angezeigt Alle Fehlerberichte für definierte Regeln
3. Bestimmen Sie den Speicherort der Protokollanweisung
4; Legen Sie die maximale Länge jedes Protokolleintrags fest
5 /error.log ;Geben Sie den Speicherort der Protokolldatei an, in die der generierte Fehlerbericht geschrieben wird
Nachdem die PHP-Konfigurationsdatei wie oben festgelegt wurde, starten Sie den Webserver neu. Auf diese Weise werden beim Ausführen einer beliebigen PHP-Skriptdatei alle generierten Fehlerberichte nicht im Browser angezeigt, sondern im von Ihnen angegebenen Fehlerprotokoll /usr/local/error.log aufgezeichnet. Darüber hinaus können nicht nur alle Fehler, die den durch error_reporting definierten Regeln entsprechen, aufgezeichnet werden, sondern auch eine benutzerdefinierte Fehlermeldung über die Funktion error_log() in PHP versendet werden.
Der Prototyp dieser Funktion lautet wie folgt:
1. bool error_log ( string message [, int message_type [, string destination [, string extra_headers]] )
Diese Funktion sendet Fehlerinformationen an den Webserver Fehlerprotokolldatei, ein TCP-Server oder eine angegebene Datei. Diese Funktion gibt TRUE zurück, wenn sie erfolgreich ist, und FALSE, wenn sie fehlschlägt. Die erste Parameternachricht ist erforderlich, bei der es sich um die zu sendende Fehlermeldung handelt. Wenn nur dieser Parameter verwendet wird, wird die Nachricht an den in der Konfigurationsdatei php.ini festgelegten Ort gesendet. Der zweite Parameter message_type ist ein ganzzahliger Wert: 0 bedeutet, dass er an das Protokoll des Betriebssystems gesendet wird; 1 bedeutet, dass die Mail()-Funktion von PHP verwendet wird, um die Nachricht an eine E-Mail-Adresse zu senden, und der vierte Parameter extra_headers wird ebenfalls verwendet; 2 bedeutet, dass die Fehlermeldung an den TCP-Server gesendet wird. Zu diesem Zeitpunkt stellt der dritte Parameter Ziel die Ziel-IP und den Port dar. 3. Speichern Sie die Informationen im Dateiziel.
Wenn wir das Problem der Anmeldung bei der Oracle-Datenbank als Beispiel nehmen, ist die Verwendung dieser Funktion wie folgt:
1. <?php 2. if(!Ora_Logon($username, $password)){ 3. error_log("Oracle数据库不可用!", 0); //将错误消息写入到操作系统日志中 4. } 5. if(!($foo=allocate_new_foo()){ 6. error_log("出现*烦了!", 1, ". mydomain.com"); //发送到管理员邮箱中 7. } 8. error_log("搞砸了!", 2, "localhost:5000"); //发送到本机对应5000端口的服务器中 9. error_log("搞砸了!", 3, "/usr/local/errors.log"); //发送到指定的文件中 10. ?>
2、 错误信息记录到操作系统的日志里
错 误信息记录到操作系统的日志里错误信息记录到操作系统的日志里错误信息记录到操作系统的日志里 错误报告也可以被记录到操作系统日志里,但不同的操作系统之间的日志管理有点区别。在Linux上错误语句将送往syslog,而在Windows上错误 将发送到事件日志里。如果你不熟悉syslog,起码要知道它是基于UNIX的日志工具,它提供了一个API来记录与系统和应用程序执行有关的消息。 Windows事件日志实际上与UNIX的syslog相同,这些日志通常可以通过事件查看器来查看。如果希望将错误报告写到操作系统的日志里,可以在配 置文件中将error_log指令的值设置为syslog。
具体需要在php.ini中修改的配置指令如下所示:
1. error_reporting = E_ALL ;将会向PHP报告发生的每个错误
2. display_errors = Off ;不显示 满足上条指令所定义规则的所有错误报告
3. log_errors = On ;决定日志语句记录的位置
4. log_errors_max_len = 1024 ;设置每个日志项的最大长度
5. error_log = syslog ;指定产生的错误报告写入操作系统的日志里
除了一般的错误输出之外,PHP还允许向系统syslog中发送定制的消息。虽然通过前面介绍的error_log()函数,也可以向syslog中发送定制的消息,但在PHP中为这个特性提供了需要一起使用的4个专用函数。
分别介绍如下:
define_syslog_variables()
在使用openlog()、syslog及closelog()三个函数之前必须先调用该函数。因为在调用该函数时,它会根据现在的系统环境为下面三个函数初使用化一些必需的常量。
openlog()
打开一个和当前系统中日志器的连接,为向系统插入日志消息做好准备。并将提供的第一个字符串参数插入到每个日志消息中,该函数还需要指定两个将在日志上下文使用的参数,可以参考官方文档使用。
syslog()
该 函数向系统日志中发送一个定制消息。需要两个必选参数,第一个参数通过指定一个常量定制消息的优先级。例如LOG_WARNING表示一般的警 告,LOG_EMERG表示严重地可以预示着系统崩溃的问题,一些其他的表示严重程度的常量可以参考官方文档使用。第二个参数则是向系统日志中发送的定制 消息,需要提供一个消息字符串,也可以是PHP引擎在运行时提供的错误字符串。
closelog()
该函数在向系统日志中发送完成定制消息以后调用,关闭由openlog()函数打开的日志连接。
如果在配置文件中,已经开启向syslog发送定制消息的指令,就可以使用前面介绍的四个函数发送一个警告消息到系统日志中,并通过系统中的syslog解析工具,查看和分析由PHP程序发送的定制消息,如下所示:
1. 2. define_syslog_variables(); 3. openlog("PHP5", LOG_PID , LOG_USER); 4. syslog(LOG_WARNING, "警告报告向syslog中发送的演示, 警告时间:".date("Y/m/d H:i:s")); 5. closelog(); 6. ?>
相关推荐:
Das obige ist der detaillierte Inhalt vonFreigabe der PHP-Fehlerprotokollierung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen





PHP 8.4 bringt mehrere neue Funktionen, Sicherheitsverbesserungen und Leistungsverbesserungen mit einer beträchtlichen Menge an veralteten und entfernten Funktionen. In dieser Anleitung wird erklärt, wie Sie PHP 8.4 installieren oder auf PHP 8.4 auf Ubuntu, Debian oder deren Derivaten aktualisieren. Obwohl es möglich ist, PHP aus dem Quellcode zu kompilieren, ist die Installation aus einem APT-Repository wie unten erläutert oft schneller und sicherer, da diese Repositorys in Zukunft die neuesten Fehlerbehebungen und Sicherheitsupdates bereitstellen.

Wenn Sie ein erfahrener PHP-Entwickler sind, haben Sie möglicherweise das Gefühl, dass Sie dort waren und dies bereits getan haben. Sie haben eine beträchtliche Anzahl von Anwendungen entwickelt, Millionen von Codezeilen debuggt und eine Reihe von Skripten optimiert, um op zu erreichen

Visual Studio Code, auch bekannt als VS Code, ist ein kostenloser Quellcode-Editor – oder eine integrierte Entwicklungsumgebung (IDE) –, die für alle gängigen Betriebssysteme verfügbar ist. Mit einer großen Sammlung von Erweiterungen für viele Programmiersprachen kann VS Code c

JWT ist ein offener Standard, der auf JSON basiert und zur sicheren Übertragung von Informationen zwischen Parteien verwendet wird, hauptsächlich für die Identitätsauthentifizierung und den Informationsaustausch. 1. JWT besteht aus drei Teilen: Header, Nutzlast und Signatur. 2. Das Arbeitsprinzip von JWT enthält drei Schritte: Generierung von JWT, Überprüfung von JWT und Parsingnayload. 3. Bei Verwendung von JWT zur Authentifizierung in PHP kann JWT generiert und überprüft werden, und die Funktionen und Berechtigungsinformationen der Benutzer können in die erweiterte Verwendung aufgenommen werden. 4. Häufige Fehler sind Signaturüberprüfungsfehler, Token -Ablauf und übergroße Nutzlast. Zu Debugging -Fähigkeiten gehört die Verwendung von Debugging -Tools und Protokollierung. 5. Leistungsoptimierung und Best Practices umfassen die Verwendung geeigneter Signaturalgorithmen, das Einstellen von Gültigkeitsperioden angemessen.

Dieses Tutorial zeigt, wie XML -Dokumente mit PHP effizient verarbeitet werden. XML (Extensible Markup-Sprache) ist eine vielseitige textbasierte Markup-Sprache, die sowohl für die Lesbarkeit des Menschen als auch für die Analyse von Maschinen entwickelt wurde. Es wird üblicherweise für die Datenspeicherung ein verwendet und wird häufig verwendet

Eine Zeichenfolge ist eine Folge von Zeichen, einschließlich Buchstaben, Zahlen und Symbolen. In diesem Tutorial wird lernen, wie Sie die Anzahl der Vokale in einer bestimmten Zeichenfolge in PHP unter Verwendung verschiedener Methoden berechnen. Die Vokale auf Englisch sind a, e, i, o, u und sie können Großbuchstaben oder Kleinbuchstaben sein. Was ist ein Vokal? Vokale sind alphabetische Zeichen, die eine spezifische Aussprache darstellen. Es gibt fünf Vokale in Englisch, einschließlich Großbuchstaben und Kleinbuchstaben: a, e, ich, o, u Beispiel 1 Eingabe: String = "TutorialPoint" Ausgabe: 6 erklären Die Vokale in der String "TutorialPoint" sind u, o, i, a, o, ich. Insgesamt gibt es 6 Yuan

Statische Bindung (statisch: :) implementiert die späte statische Bindung (LSB) in PHP, sodass das Aufrufen von Klassen in statischen Kontexten anstatt Klassen zu definieren. 1) Der Analyseprozess wird zur Laufzeit durchgeführt.

Was sind die magischen Methoden von PHP? Zu den magischen Methoden von PHP gehören: 1. \ _ \ _ Konstrukt, verwendet, um Objekte zu initialisieren; 2. \ _ \ _ Destruct, verwendet zur Reinigung von Ressourcen; 3. \ _ \ _ Call, behandeln Sie nicht existierende Methodenaufrufe; 4. \ _ \ _ GET, Implementieren Sie den dynamischen Attributzugriff; 5. \ _ \ _ Setzen Sie dynamische Attributeinstellungen. Diese Methoden werden in bestimmten Situationen automatisch aufgerufen, wodurch die Code -Flexibilität und -Effizienz verbessert werden.
