wake-up-neo.net

PHP Speicherort des integrierten Serverfehlerprotokolls

Ich weiß nicht, ob es welche gibt? aber ist php in web server eingebaut und speichert seine fehlerprotokolle in einer datei? für Endzwecke, z. B. beim Erstellen eines virtuellen Hosts in Apache.

UPDATE: Ich verwende Mac OSX

12
Bryan Estrito

Ja, PHP verfügt über eine integrierte Fehlerprotokollfunktion.

PHP protokolliert Fehler automatisch in diese Datei.

Wenn Sie Fehler protokollieren möchten, verwenden Sie die Funktion error_log ()

Der Speicherort der Datei ändert sich je nach Umgebung.

z.B.

in Ubuntu 12.04, seine

var/log/php_errors.log

In XAMPP-Fenstern

\xampp\php\logs\php_errors.log

In Mac OS

/var/log/Apache2/php_errors.log

5
Pupil

Der integrierte Webserver protokolliert standardmäßig nirgendwo. Daher müssen Sie eine php.ini angeben, um dies anpassen zu können. Wenn Sie beispielsweise eine Datei namens php.ini mit folgendem Inhalt erstellt haben:

error_log = /Users/me/test.log
log_errors = on
date.timezone = UTC

Dann können Sie den integrierten Webserver von PHP folgendermaßen starten:

php -S 127.0.0.1:8080 -c php.ini

Und error_log () - Aufrufe werden in der von Ihnen angegebenen Datei protokolliert.

16
thenickdude

Wenn Sie unter macOS PHP Builtin-Server verwenden, müssen Sie error_log in Ihrer php.ini-Konfigurationsdatei (php -i | grep php.ini) angeben.

Wenn Sie sich für syslog entscheiden (anstelle einer Protokolldatei), z.

error_log = syslog

Zum Ablegen der Protokolle können Sie den Befehl log unter macOS verwenden, z.

log stream --predicate 'processImagePath contains "php"'

Verwenden Sie andernfalls einen bestimmten Dateipfad für das Fehlerprotokoll (z. B. /usr/local/var/log/php-error.log).

1
kenorb

Update für Mac OS X High Sierra (10.13.5) : Dies funktionierte für mich, ohne dass die Standardwerte für PHP geändert werden mussten. Benutz einfach

error_log('*** notice this***');

und das Fehlerprotokoll abschließen:

tail -f /var/log/Apache2/error_log
0
dhc