Ich bin auf Shared Hosting und habe Cpanel, Apache, PHP wird von fastcgi betrieben. Wo speichert PHP das Fehlerprotokoll?
Gibt es eine andere Möglichkeit, das Fehlerprotokoll in einer gemeinsam genutzten Hosting-Umgebung zu finden, anstatt die gesamte Site-Struktur zu durchsuchen, um nach error_log-Dateien zu suchen?
Ich habe Zugriff auf die php.ini
(ich verwende PHP Version 5.2.16).
error-handling
php
PHPLOVER
quelle
quelle
/var/log/httpd/error_log
oder/var/log/apache2/error.log
. Diese Dateien gehören root. Sie müssen also root sein oder verwendet werdensudo
, um sie anzuzeigen oder zu lesen.php --info | grep error
php --info | findstr /r /c:"error_log"
zu sehen, wo sich die Protokolldatei befindet.Antworten:
PHP speichert Fehlerprotokolle,
/var/log/apache2
wenn PHP ein Apache2-Modul ist. Freigegebene Hosts speichern häufig Protokolldateien in Ihrem/log
Unterverzeichnis des Stammverzeichnisses . Aber ... wenn Sie Zugriff auf einephp.ini
Datei haben, können Sie dies tun:Laut dem Kommentar von rinogo : Wenn Sie cPanel verwenden, wird die Master-Protokolldatei, nach der Sie wahrscheinlich suchen, (standardmäßig) unter gespeichert
Wenn alles andere fehlschlägt, können Sie den Speicherort der Protokolldatei mit überprüfen
quelle
/usr/local/apache/logs/error_log
<?php phpinfo(); ?>
, um den Pfad zu bestätigenVersuchen Sie
phpinfo()
, nach "error_log" zu suchen.quelle
echo ini_get('error_log');
?error_reporting(E_ALL|E_STRICT);
se.php.net/manual/en/function.error-reporting.phpLinux
Das Terminal gibt den Speicherort des Fehlerprotokolls aus.
Windows
Die Eingabeaufforderung gibt den Speicherort des Fehlerprotokolls aus
So legen Sie den Protokollspeicherort fest
Öffnen Sie Ihre
php.ini
und fügen Sie die folgende Zeile hinzu:Danke @chelmertez , @Boom für diese (Kommentare zur Frage).
quelle
php -info
etwas aus? Sie müssen sicherstellen, dassphp
tatsächlich PHPphp.ini
und Satzerror_reporting
anE_ALL & ~E_DEPRECATED & ~E_STRICT
, oder was auch immer Fehler , die Sie sehen wollen, dann setzenerror_log
auf den Pfad zu dem Verzeichnis , in dem Sie Ihre Fehler wollen angemeldet werden. (Hinweis: Dies ist kein vollständiger Pfad zu einer Datei, nur zu einem Verzeichnis.)php --info | grep log
mich auf / var / www / logs verwiesen, wo sich die neuesten Protokolle befanden.sudo /etc/init.d/apache2 restart
In einer LAMP-Umgebung richten sich die PHP-Fehler standardmäßig an die folgende Datei.
Alle Zugriffsprotokolle fallen unter:
quelle
So finden Sie Ihr PHP-Fehlerprotokoll unter Linux:
Ein anderer gleichwertiger Weg:
quelle
Es scheint, dass PHP standardmäßig nirgendwo Fehler protokolliert , die
error_log
Schlüssel in php.ini ist in allen Installationen, die ich gesehen habe, auskommentiert.Generell ich:
locate php.ini
.Durchsuchen Sie diese Dateien nach dem
error_reporting
Wert.Welches sollte auf die Zusammenführung der PHP-Log-Ebenen eingestellt werden, die für Sie ausreicht.,
Z.B:
E_ALL & ~E_DEPRECATED & ~E_STRICT
Überprüf den
error_log
Wert, um sicherzustellen, dass er auf einen tatsächlichen Ort verweist und nicht auskommentiert ist.Der Standardwert gibt keinen vollständigen Pfad an, nur einen Dateinamen. Ich weiß nicht, wohin dieser Pfad normalerweise aufgelöst wird. Wahrscheinlich
/var/log/
.quelle
Sie sollten den absoluten Pfad verwenden, wenn Sie die Variable error_log in Ihrer Datei php.ini festlegen. Andernfalls werden Fehlerprotokolle entsprechend Ihrem relativen Pfad gespeichert.
Eine andere Lösung wäre das Schreiben eines einfachen Skripts, das alle Fehlerprotokolldateien aus dem Verzeichnisbaum auflistet.
quelle
Dies kann auch der Fall sein,
/var/log/apache2/error.log
wenn Sie sich in der Google Compute Engine befinden.Und Sie können den Schwanz so sehen:
quelle
Wenn Sie Apache und PHP aus dem Quellcode erstellt haben, werden die Fehlerprotokolle standardmäßig bei Ihnen generiert,
${Apache install dir}/logs/error_log
dh im Allgemeinen/usr/local/apache2/logs/error_log
. Andernfalls, wenn Sie es aus dem Repository installiert haben, finden Sie es unter./var/log/apache2/error_log
Sie können den Pfad auch in Ihrem Repository festlegenphp.ini
und ihn durch Aufrufen überprüfenphpinfo()
.quelle
Am besten schauen Sie in Ihre httpd.conf-Datei und sehen, was die Standardeinstellung ist. Es kann auch von Ihrem spezifischen virtuellen Host überschrieben werden. Ich beginne mit einem Blick auf
/etc/httpd/conf/httpd.conf
oder/etc/apache2/httpd.conf
und suche nach error_log. Es kann entweder als / var / log / httpd / error_log oder/var/log/apache2/error_log
einfach als einfach aufgeführt werdenlogs/error_log
.In diesem Fall handelt es sich um einen relativen Pfad, dh, er befindet sich unter
/etc/httpd/logs/error_log
. Wenn Sie es immer noch nicht finden können, überprüfen Sie den unteren Rand Ihrer httpd.conf-Datei und sehen Sie, wo Ihre virtuellen Hosts enthalten sind. Es könnte in /etc/httpd/conf.d/<- als "other" oder "extra" sein. Ihr virtueller Host könnte es dann mit ErrorLog "/ path / to / error_log" überschreiben.quelle
Bei der Konfiguration Ihrer Fehlerprotokolldatei in der php.ini können Sie einen absoluten oder einen relativen Pfad verwenden. Ein relativer Pfad wird basierend auf dem Speicherort des generierenden Skripts aufgelöst. In jedem Verzeichnis, in dem sich Skripte befinden, wird eine Protokolldatei angezeigt. Wenn alle Fehlermeldungen in dieselbe Datei verschoben werden sollen, verwenden Sie einen absoluten Pfad zu die Datei.
Weitere Informationen finden Sie hier: http://www.php.net/manual/en/ref.errorfunc.php#53025
quelle
NGINX speichert es normalerweise in /var/log/nginx/error.log oder access.log. (Auf jeden Fall unter Ubuntu)
quelle
Das ist hilfreich. kommentiert von sjas auf frage. Also habe ich es als Antwort aufgenommen.
quelle
Wenn Sie php5-fpm verwenden, sollte das Protokoll standardmäßig unter sein
quelle
wo immer Sie es wollen, wenn Sie es Ihren Funktionsaufruf setzen: error_log ($ errorMessageforLog. "\ n", 4, 'somePath / SomeFileName.som');
quelle
Durchsuchen Sie die Datei httpd.conf,
ErrorLog
indem Sie siecat <file location> | grep ErrorLog
in der Befehlszeile ausführen . Zum Beispiel:Ausgabe:
Finden Sie die Zeile, die mit beginnt,
ErrorLog
und es gibt Ihre Antwort.Hinweis: Bei virtuellen Hosts können Sie die Datei für virtuelle Hosts bearbeiten
httpd-vhosts.conf
, um einen anderen Speicherort für die Protokolldatei anzugeben.quelle
cPanel-Fehlerprotokolle befinden sich in:
Standardmäßig befinden sich Apche-Protokolle in:
oder
Wenn jemand einen benutzerdefinierten Protokollspeicherort verwendet, können Sie dies überprüfen, indem Sie den folgenden Befehl ausführen:
Wenn Sie die Fehlermeldung erhalten, dass das Verzeichnis apache2 nicht vorhanden ist, können Sie diesen Befehl ausführen, um den richtigen Speicherort zu finden, indem Sie:
oder
quelle
quelle
Sie befinden sich in einer Freigabeumgebung und können kein Fehlerprotokoll finden. Überprüfen Sie immer, ob cPanel die Option Fehler in Ihrem cPanel-Dashboard enthält. Wenn Sie das Fehlerprotokoll nicht finden können, finden Sie es dort.
In der cPanel-Suchleiste "Fehler suchen" werden Fehlerseiten angezeigt, bei denen es sich im Wesentlichen um Listen verschiedener http-Fehlerseiten handelt. Bei anderen Fehlern werden die Fehlerprotokolle angezeigt.
Andere Orte, an denen Sie in der freigegebenen Umgebung nachsehen können: / home / Ihr Benutzername / logs / home / Ihr Benutzername / public_html / error_log
quelle
etwas wie das :
oder
oder
quelle
Wordpress
Wordpress leitet
error_log()
Nachrichten an den/wp-content/debug.log
ZeitpunktWP_DEBUG_LOG
true weiter.Siehe Wordpress-Dokumentation für WP_DEBUG_LOG
quelle