it-swarm.com.de

Wo ist das? PHP das Fehlerprotokoll speichern? (php5, Apache, fastcgi, cpanel)

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 der gemeinsam genutzten Hosting-Umgebung zu finden, anstatt die gesamte Site-Struktur durchlaufen zu müssen, um nach error_log-Dateien zu suchen?

Ich habe Zugriff auf den php.ini (ich verwende PHP Version 5.2.16).

339
PHPLOVER

PHP speichert Fehlerprotokolle in /var/log/Apache2, wenn PHP ein Apache2-Modul ist. Gemeinsam genutzte Hosts speichern häufig Protokolldateien in Ihrem Stammverzeichnis /log-Unterordner . Wenn Sie jedoch Zugriff auf eine php.ini-Datei haben, können Sie Folgendes tun:

error_log = /var/log/php-scripts.log

Entsprechend dem Kommentar von rinogo : Wenn Sie cPanel verwenden, wird die Master-Protokolldatei, nach der Sie wahrscheinlich suchen, standardmäßig gespeichert unter.

/usr/local/Apache/logs/error_log

Wenn alles andere fehlschlägt, können Sie den Speicherort der Protokolldatei mit überprüfen

<?php phpinfo(); ?>
274
Adam Arold

Versuchen Sie phpinfo() und suchen Sie nach "error_log".

81
chelmertz

Linux

php --info | grep error 

Das Terminal gibt die Position des Fehlerprotokolls aus.

Windows

php --info | findstr /r /c:"error_log"

Die Eingabeaufforderung gibt die Position des Fehlerprotokolls aus

So legen Sie den Protokollspeicherort fest

Öffnen Sie Ihren php.ini und fügen Sie die folgende Zeile hinzu:

error_log = /log/myCustomLog.log

Danke @chelmertez , @Boom für diese (Kommentare zu der Frage) .

31
Cullub

In einer LAMP-Umgebung werden die PHP-Fehler standardmäßig an diese Datei weitergeleitet. 

/var/log/httpd/error_log

Alle Zugriffsprotokolle fallen unter:

/var/log/httpd/access_log
28
Allie

Wie finde ich das PHP Fehlerprotokoll unter Linux:

[email protected] /var $ Sudo updatedb
[Sudo] password for eric:
[email protected] /var $ Sudo locate error_log

/var/log/httpd/error_log

Ein anderer gleichwertiger Weg:

[email protected] /home/eric $ Sudo find / -name "error_log" 2>/dev/null

/var/log/httpd/error_log
15
Eric Leschinski

Es kann auch /var/log/Apache2/error.log sein, wenn Sie sich in der Google Compute Engine befinden.

Und Sie können den Schwanz so sehen: 

tail -f /var/log/Apache2/error.log
10
Vivek

Es hat den Anschein, dass standardmäßig php keine Fehler protokolliert ird, der error_log-Schlüssel in der php.ini in allen installierten Dateien auskommentiert.

Im Allgemeinen ich:

  1. suchen Sie nach php.ini-Dateien. locate php.ini.
  2. Suchen Sie in diesen Dateien nach dem error_reporting-Wert. 

    Welches sollte auf die Zusammenführung der PHP-Loglevel eingestellt werden, die für Sie ausreichend sind.

    ZB: E_ALL & ~E_DEPRECATED & ~E_STRICT

  3. Überprüfen Sie den error_log-Wert, um sicherzustellen, dass er auf einen tatsächlichen Ort verweist und nicht auskommentiert ist.

    Der Standardwert enthält keinen vollständigen Pfad, nur einen Dateinamen. Ich weiß nicht, wo sich dieser Pfad normalerweise auflöst. Wahrscheinlich /var/log/.

9
ThorSummoner

Sie sollten den absoluten Pfad verwenden, wenn Sie error_log variable in Ihrer php.ini-Datei festlegen. Andernfalls werden Fehlerprotokolle entsprechend Ihrem relativen Pfad gespeichert. 

error_log = /var/log/php.errors

Eine andere Lösung wäre das Schreiben eines einfachen Skripts, das alle Fehlerprotokolldateien aus dem Verzeichnisbaum auflistet.

9
mailo

Wenn Sie Apache und PHP aus dem Quellcode erstellt haben, werden die Fehlerprotokolle standardmäßig in Ihrem ${Apache install dir}/logs/error_log generiert, d. H. In der Regel /usr/local/Apache2/logs/error_log. Ansonsten, 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 php.ini angeben und durch Aufruf von phpinfo() überprüfen.

5
Abhishek

Am besten schauen Sie in Ihre httpd.conf-Datei und sehen, was der Standard ist. Es könnte auch von Ihrem spezifischen virtuellen Host überschrieben werden. Ich beginne mit /etc/httpd/conf/httpd.conf oder /etc/Apache2/httpd.conf und suche nach error_log. Es könnte entweder als/var/log/httpd/error_log oder /var/log/Apache2/error_log aufgeführt sein, aber es könnte auch einfach als logs/error_log aufgeführt sein.

In diesem Fall handelt es sich um einen relativen Pfad, dh es steht unter /etc/httpd/logs/error_log. Wenn Sie es immer noch nicht finden können, überprüfen Sie den unteren Rand Ihrer Datei httpd.conf und sehen Sie, wo Ihre virtuellen Hosts enthalten sind. Es könnte in /etc/httpd/conf.d/<- als "other" oder "extra" stehen. Ihr virtueller Host könnte es dann mit ErrorLog "/ path/to/error_log" überschreiben.

5
Thomas Bennett

Wenn Sie php5-fpm verwenden, sollte das Protokoll standardmäßig unter sein

/var/log/php5-fpm.log
3

NGINX speichert es normalerweise in /var/log/nginx/error.log oder access.log . (Auf jeden Fall Ubuntu)

3
DarkNeuron

Wenn Sie Ihre Fehlerprotokolldatei in php.ini konfigurieren, 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 Skripts befinden, wird eine Protokolldatei angezeigt. Wenn alle Fehlernachrichten in derselben Datei angezeigt werden sollen, verwenden Sie einen absoluten Pfad die Datei.

Mehr dazu hier: http://www.php.net/manual/de/ref.errorfunc.php#53025

3
anemone928

wo immer Sie möchten, wenn Sie Ihren Funktionsaufruf festlegen: error_log ($ errorMessageforLog. "\ n", 4, 'somePath/SomeFileName.som');

2
cfphpflex

Durchsuchen Sie die httpd.conf-Datei nach ErrorLog, indem Sie cat <file location> | grep ErrorLog in der Befehlszeile ausführen. Zum Beispiel:

$ cat /etc/Apache2/httpd.conf | grep ErrorLog

Ausgabe:

# ErrorLog: The location of the error log file.
# If you do not specify an ErrorLog directive within a <VirtualHost>
ErrorLog "/private/var/log/Apache2/error_log"

Suchen Sie die Zeile, die mit ErrorLog beginnt, und Ihre Antwort ist da.

Hinweis: Für virtuelle Hosts können Sie die Datei httpd-vhosts.conf der virtuellen Hosts bearbeiten, um einen anderen Speicherort für die Protokolldatei anzugeben.

2
jkdev
  1. sie können in den Datei-Manager-Prüfprotokollordner gehen.
  2. Überprüfen Sie die Protokolldatei im Ordner public_html.
  3. Überprüfen Sie die Datei "php phpinfo ()", in der das Protokoll gespeichert wird.
0
Mevil Bhojani
php --info | grep error

Das ist hilfreich. von sjas zur Frage kommentiert. Also habe ich es als Antwort hinzugefügt.

0
J4GD33P 51NGH

cPanel-Fehlerprotokolle befinden sich in:

/ usr/local/cpanel/logs /

/ usr/local/Apache/logs /

Standardmäßig befinden sich Apche-Protokolle in:

/ var/log/Apache

oder

/ var/log/Apache2

Wenn jemand einen benutzerdefinierten Protokollspeicherort verwendet, können Sie diesen überprüfen, indem Sie den folgenden Befehl ausführen:

cat/etc/Apache2 / conf / httpd.conf | grep ErrorLog

Wenn Sie die Fehlermeldung erhalten, dass das Apache2-Verzeichnis nicht vorhanden ist, können Sie diesen Befehl ausführen, um den richtigen Speicherort zu finden:

wo ist Apache?

oder

wo ist Apache2

0
Dewlance

Sie befinden sich in einer Freigabeumgebung und können das Fehlerprotokoll nicht 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 werden unter "Fehler suchen" Fehlerseiten angezeigt, bei denen es sich im Wesentlichen um Listen mit verschiedenen http-Fehlerseiten handelt. In anderen Fehlerseiten werden die Fehlerprotokolle angezeigt.

Andere Orte, an denen Sie nach einer freigegebenen Umgebung suchen können:/home/IhrBenutzername/logs/home/IhrBenutzername/public_html/error_log

0
Krishna Pariyar