2014-04-25 6 views

Antwort

-1

Datei Öffnen Sie Ihre php.ini

+0

Dies sollte bekommen haben Downvoted nicht, weil diese richtige Verwendung ist, wie beabsichtigt. Die Leute sollten die Werkzeuge so verwenden, wie sie vorgesehen sind, und nur dann ihre eigene Lösung aufdrehen, wenn sie nicht zugänglich oder nicht verfügbar ist. Es gibt zu viele Leute auf dieser Seite, die annehmen, dass es automatisch falsch ist, nur weil es ihr spezifisches Problem (und alle damit verbundenen, aber nicht gemeldeten Probleme) nicht gelöst hat. Das ist nicht falsch, und wenn es nicht funktioniert, ist Ihr Server schlecht eingerichtet, was Ihr wirkliches Problem ist. – mopsyd

+0

Ich würde hinzufügen, dass Protokolle auch in der apache.conf oder vhost.conf auch definiert werden können. – mopsyd

5

Quote from the documentation den Weg gegen error_log Check:

error_log String

Name der Datei in dem Skriptfehler sollten angemeldet sein. Die Datei sollte vom Benutzer des Webservers beschreibbar sein. Wenn der spezielle Wert syslog verwendet wird, werden die Fehler stattdessen an die Systemprotokollierung gesendet. Unter Unix bedeutet dies syslog (3) und unter Windows NT das Ereignisprotokoll . Die Systemprotokollfunktion wird unter Windows 95 nicht unterstützt. Siehe auch: syslog(). Wenn diese Anweisung nicht gesetzt ist, werden Fehler an den SAPI Fehlerlogger gesendet. Zum Beispiel ist es ein Fehlerprotokoll in Apache oder stderr in CLI.

Also, wenn der Wert nicht gesetzt ist (das ist die Standardeinstellung) wird an die Mutterfehlerlogger gesendet werden, die Apache (wenn über sie laufen) oder stderr, wenn Sie das Skript auf der Kommandozeile .

Wenn Sie das Skript über Apache verwenden, müssen Sie sich das Apache-Fehlerprotokoll ansehen, normalerweise in /var/log/apache oder /var/log/httpd, abhängig von Ihrer Distribution. Sie können die Apache-Konfigurationsdatei für den genauen Standort überprüfen.

Edit:

Ich habe gerade bemerkt falsch verstehe ich Ihre Frage, ich denke du meinst error_logerror_log den Ist-Wert hat?

Ich habe gerade ein paar Tests gemacht. Wenn ich error_log auf einen Wert wie php_errors.log setze, schreibt PHP die Fehlermeldungen immer noch in das Apache-Fehlerprotokoll. Es verhält sich, als wäre der Wert leer. Wenn ich den Wert auf einen vollständigen Pfad einstelle (z. B. /tmp/php_errors.log), schreibt er die Fehler in die angegebene Datei.

Also ich denke, in Ihrem Fall schreibt es die Fehler in die Apache-Fehlerprotokolldatei.

Natürlich können Sie Ihre eigenen Protokolldatei

ini_set("error_log", "/tmp/php_errors.log"); 

auf Ihre PHP-Dateien, wo Sie es brauchen gesetzt Hinzufügen (wenn es nicht von einem Administrator deaktiviert wurde).

+0

gibt es kein '/ apache' in'/var/log'. aber es gibt ein 'error_log' in'/usr/local/apache/logs', aber es scheint keine PHP-Fehler zu zeigen. Wenn ich meine PHP-Seite starte, bekomme ich einen leeren Bildschirm und ich möchte den Syntaxfehler wissen. 'display_errors' ist in' php.ini' ausgeschaltet. – Ryan

+0

sollten Sie 'display_errors' in Ihrer PHP-Datei selbst aktivieren können. Fügen Sie einfach 'ini_set (" display_errors ", 1);' am Anfang hinzu. –

+0

prächtige Idee Freund – Ryan

0

Wenn der Wert einfach sagt error_log (oder error_log = error_log in Ihrer php.ini-Datei), die die Fehler bedeutet, dass zu einer error_log im gleichen Verzeichnis, das der Fehler auftritt genannte Datei geschrieben werden.

Also, wenn Sie eine Datei index.php in /home/user/public_html/ genannt, die einen Fehler wirft, wird der Fehler geschrieben werden: /home/user/public_html/error_log.

Wenn Sie Datei resize.php in /home/user/public_html/admin/images/ genannt haben, die einen Fehler wirft, dann werden die Fehler geschrieben werden: /home/user/public_html/admin/images/error_log


Quelle: Display and log errors for PHP

Verwandte Themen