Wo speichert PHP das Fehlerprotokoll? (PHP 5, Apache, FastCGI und cPanel)
Lesezeit: 6 Minuten
PHPLOVER
Ich bin auf Shared Hosting und habe cPanelApache und PHP wird ausgeführt von FastCGI. 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 durchsuchen zu müssen, um danach zu suchen? Fehlerprotokoll Dateien?
Ich habe Zugriff auf die php.ini Datei (ich verwende PHP Version 5.2.16).
Unter Linux auch nicht /var/log/httpd/error_log oder /var/log/apache2/error.log. Diese Dateien gehören root, also müssen Sie root oder use sein sudo um es zu sehen oder zu lesen.
– Eric Leschinski
7. August 2014 um 19:49 Uhr
php --info | grep error
– sjas
27. August 2014 um 13:21 Uhr
Für diejenigen, die nach einer Windows-Lösung suchen, verwenden Sie php --info | findstr /r /c:"error_log" um zu sehen, wo sich die Protokolldatei befindet.
– Boom
13. Mai 2015 um 17:00 Uhr
Es ist ziemlich seltsam für mich … Ich habe eine gehostete Website und PHP-Protokolle werden in derselben Datei wie Apache-Protokolle gespeichert … In meinem Admin-Bereich, in Protokollen, gibt es die Option, das vollständige Apache-Fehlerprotokoll anzuzeigen, wenn ich darauf klicke, Beispielsweise treten Fehler auf, wenn Benutzer Orte eingeben, an denen sie dies nicht tun sollten. Aber auch drin dieselbe Datei Es gibt Fehler, die PHP anzeigt.
– Benutzer5147563
12. März 2017 um 10:35 Uhr
@soaku Wenn Sie fastcgi verwenden, läuft Apache selbst nicht mit PHP. Wenn Sie mod_php verwenden, das Apache-Modul ist, verarbeitet Apache PHP. Das bedeutet, dass bei der Verwendung von mod_php Fehler in Apache-Protokollen auftreten können und wahrscheinlich sein werden, aber dies ist bei der Verwendung von cgi oder fastcgi nicht der Fall
– Gall Annonim
7. Juni 2018 um 9:20 Uhr
Adam Arold
PHP speichert Fehlerprotokolle /var/log/apache2 wenn PHP ein Apache2-Modul ist. Gemeinsam genutzte Hosts speichern häufig Protokolldateien in Ihrem Stammverzeichnis /log Unterordner. Aber … wenn Sie Zugang zu einem haben php.ini Datei können Sie dies tun:
error_log = /var/log/php-scripts.log
Entsprechend RinogoKommentar von : Wenn Sie cPanel verwenden, wird die Master-Protokolldatei, nach der Sie wahrscheinlich suchen, (standardmäßig) unter gespeichert
/usr/local/apache/logs/error_log
Wenn alles andere fehlschlägt, können Sie den Speicherort der Protokolldatei mit überprüfen
<?php phpinfo(); ?>
“Php speichert Fehlerprotokolle in /var/log/apache2, wenn PHP ein Apache2 ist”, nicht auf RHEL usw., wo der Name des Pakets “httpd” ist. Man kann wirklich nicht davon ausgehen, dass der Name eines Pakets über Distributionen hinweg konsistent ist.
– chelmertz
14. Mai 2013 um 9:07 Uhr
FYI to Googlers – Wenn Sie cPanel verwenden, wird die Master-Protokolldatei, nach der Sie wahrscheinlich suchen, (standardmäßig) unter gespeichert /usr/local/apache/logs/error_log
– Rinogo
4. Dezember 2013 um 19:11 Uhr
aber überprüfen Sie den Abschnitt ‘error_log’ von <?php phpinfo(); ?> um den Pfad zu bestätigen
– Doppelklinke
27. Mai 2014 um 19:44 Uhr
Wo im Abschnitt phpinfo wird es angezeigt? In error_log sehe ich nur ‘error_log’ und keinen tatsächlichen Pfad für Schlüssel/Wert
– Robert Sinclair
28. August 2017 um 21:51 Uhr
Ich denke, das Problem von @Hi-Angel war der Versuch, ein tatsächliches PHP-Tag (anstelle von reinem PHP-Code) über … PHP-Shell (php -a)
– igorsantos07
19. Juni 2020 um 7:01 Uhr
Versuchen phpinfo() und nach “error_log” suchen
Es sagt nur Fehlerprotokoll kein Pfad angegeben. Ich denke, es liegt vielleicht daran, dass es sich in einer gemeinsam genutzten Hosting-Umgebung befindet und wenn wir Zugriff darauf hätten, würden wir alle anderen Site-Fehler sehen.
– PHPLOVER
26. Februar 2011 um 15:56 Uhr
@PHPLOVER sagt es dasselbe, wenn Sie es versuchen echo ini_get('error_log');?
Meins sagt auch error_log, keine Ahnung wo ich danach suchen soll. Dies trifft bei Google auf Nr. 1, beantwortet es jedoch nicht.
– HMR
10. Juni 2014 um 7:30 Uhr
@Pacerier Ich zahle ungefähr 12 US-Dollar pro Monat für meine, aber Digital Ocean hat anscheinend eine kleine Maschine für 5 US-Dollar: digitalocean.com/pricing Nicht allzu vertraut mit Hosting, aber Sie könnten wahrscheinlich etwas über Google finden.
– chelmertz
2. März 2015 um 12:57 Uhr
Kumpel
Linux
php --info | grep error
Das Terminal gibt den Speicherort des Fehlerprotokolls aus.
Windows
php --info | findstr /r /c:"error_log"
Die Eingabeaufforderung gibt den Speicherort des Fehlerprotokolls aus.
Zum Festlegen des Protokollspeicherorts
Öffne dein php.ini und füge folgende Zeile hinzu:
error_log = /log/myCustomLog.log
Danke chelmertz und Boom für diese (Kommentare zur Frage).
ich bin auf linux. Dies erwähnt keinen Protokollspeicherort für mich.
– Sirex
24. März 2016 um 1:27 Uhr
@ Sirex tut es php -info etwas ausgeben? Sie müssen sich vergewissern php ruft tatsächlich PHP zum Ausführen auf …
– Klub
8. April 2016 um 14:43 Uhr
Es ist auch möglich, dass PHP derzeit nichts protokolliert. Wenn das der Fall ist, können Sie Ihre öffnen php.iniund einstellen error_reporting zu E_ALL & ~E_DEPRECATED & ~E_STRICToder welche Fehler Sie auch immer sehen möchten, dann setzen error_log in den Pfad zu dem Verzeichnis, in dem Ihre Fehler protokolliert werden sollen. (Hinweis: Dies ist kein vollständiger Pfad zu einer Datei, sondern nur zu einem Verzeichnis.)
– Klub
8. April 2016 um 14:52 Uhr
Ich habe nur gefunden alt meldet sich in /var/log/httpd/ an, wo die meisten Leute empfehlen, nachzusehen, aber auszuführen php --info | grep log wies mich auf /var/www/logs hin, wo sich die neuesten Protokolle befanden.
– ChrisBob
2. Februar 2017 um 16:38 Uhr
Nachdem Sie den Protokollspeicherort festgelegt haben, vergessen Sie nicht, Apache neu zu starten: sudo /etc/init.d/apache2 restart
– BrianHenryIE
3. Juli 2018 um 0:08 Uhr
Allie
Auf einen LAMPE Umgebung werden die PHP-Fehler standardmäßig an die folgende Datei weitergeleitet.
/var/log/httpd/error_log
Alle Zugriffsprotokolle kommen unter:
/var/log/httpd/access_log
Erich Leschinski
So finden Sie Ihr PHP-Fehlerprotokoll unter Linux:
sudo updatedb
[sudo] password for eric:
sudo locate error_log
/var/log/httpd/error_log
Es scheint, dass standardmäßig PHP protokolliert nicht Fehler überall. Die error_log key in php.ini ist in allen Installationen, die ich gesehen habe, auskommentiert.
Generell ich:
suchen php.ini Dateien. locate php.ini.
Durchsuchen Sie diese Dateien nach der error_reporting Wert;
Welches sollte auf eine beliebige Zusammenführung von PHP-Protokollebenen eingestellt werden, die für Sie ausreichen.,
Zum Beispiel: E_ALL & ~E_DEPRECATED & ~E_STRICT
Überprüf den error_log -Wert, um sicherzustellen, dass er auf eine tatsächliche Stelle zeigt 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/.
Peter Mortensen
Es kann auch sein /var/log/apache2/error.log wenn du dabei bist Google Compute-Engine.
Und Sie können den Schwanz so anzeigen:
tail -f /var/log/apache2/error.log
Nicht nur Google Compute Engine. Die meisten LAMP-Installationen (unter Linux) ebenfalls.
– Peter Mortensen
28. September 2021 um 16:03 Uhr
9926700cookie-checkWo speichert PHP das Fehlerprotokoll? (PHP 5, Apache, FastCGI und cPanel)yes
Unter Linux auch nicht
/var/log/httpd/error_log
oder/var/log/apache2/error.log
. Diese Dateien gehören root, also müssen Sie root oder use seinsudo
um es zu sehen oder zu lesen.– Eric Leschinski
7. August 2014 um 19:49 Uhr
php --info | grep error
– sjas
27. August 2014 um 13:21 Uhr
Für diejenigen, die nach einer Windows-Lösung suchen, verwenden Sie
php --info | findstr /r /c:"error_log"
um zu sehen, wo sich die Protokolldatei befindet.– Boom
13. Mai 2015 um 17:00 Uhr
Es ist ziemlich seltsam für mich … Ich habe eine gehostete Website und PHP-Protokolle werden in derselben Datei wie Apache-Protokolle gespeichert … In meinem Admin-Bereich, in Protokollen, gibt es die Option, das vollständige Apache-Fehlerprotokoll anzuzeigen, wenn ich darauf klicke, Beispielsweise treten Fehler auf, wenn Benutzer Orte eingeben, an denen sie dies nicht tun sollten. Aber auch drin dieselbe Datei Es gibt Fehler, die PHP anzeigt.
– Benutzer5147563
12. März 2017 um 10:35 Uhr
@soaku Wenn Sie fastcgi verwenden, läuft Apache selbst nicht mit PHP. Wenn Sie mod_php verwenden, das Apache-Modul ist, verarbeitet Apache PHP. Das bedeutet, dass bei der Verwendung von mod_php Fehler in Apache-Protokollen auftreten können und wahrscheinlich sein werden, aber dies ist bei der Verwendung von cgi oder fastcgi nicht der Fall
– Gall Annonim
7. Juni 2018 um 9:20 Uhr