Ich versuche herauszufinden, wohin die PHP-Fehler in meinem Setup führen. Ich verwende Nginx als Reverse-Proxy für PHP-FPM, sehe aber nicht die verschiedenen E_NOTICE- oder E_WARNING- Nachrichten, die meine App erzeugt. Der einzige Grund, warum ich weiß, dass sie passieren, sind fehlgeschlagene Antworten und NewRelic, die Stack-Traces abfangen.
Hier ist die Protokollierungskonfiguration:
nginx.conf
proxy_intercept_errors on;
fastcgi_intercept_errors on;
php.ini
error_reporting = E_ALL
display_errors = Off
display_startup_errors = Off
log_errors = On
log_errors_max_len = 1024
ignore_repeated_errors = Off
ignore_repeated_source = Off
report_memleaks = On
track_errors = On
error_log = syslog
php-fpm.conf
[global]
error_log = /var/log/php-fpm/fpm-error.log
[www]
access.log = /var/log/php-fpm/access.log
access.format = "%t \"%m %r%Q%q\" %s %{mili}dms %{kilo}Mkb %C%%"
catch_workers_output = yes
php_flag[display_errors] = on
php_admin_flag[log_errors] = true
rsyslog.conf
:syslogtag, contains, "php" /var/log/php-fpm/error.log
Ich habe PHP so konfiguriert, dass es sich in Syslog anmeldet, aber FPM hat keine Syslog-Funktion, so dass es sich in eine Datei anmeldet. Es ist mir eigentlich egal, wo die Fehler landen, nur dass sie irgendwo landen.
Gibt es Hinweise, wie ich das zum Laufen bringen könnte?
Antworten:
Laut der Konfigurationsdatei unterstützt FPM das Senden von Fehlern an Syslog.
quelle
Sind Sie sich Ihrer Annahme für die rsyslog.conf sicher? Sind Sie sicher, dass alle derartigen Syslog-Nachrichten mit Kleinbuchstaben "php" gekennzeichnet sind?
Versuchen Sie, syslog.facility auf so etwas wie local2 (oder local1 oder local7) zu setzen und Ihre Konfigurationszeile rsyslog.conf entsprechend zu ersetzen:
quelle
Wenn Sie php-fpm verwenden, scheint es, die
php.ini
Einstellungen zu überschreiben .Die Protokollierung muss höchstwahrscheinlich in konfiguriert werden
.../www.conf
.Ich habe diese Zeilen auskommentiert, um die PHP-Protokolle zu erfassen.
Der Webserver-Benutzer und die Gruppe finden Sie auch in dieser Datei unter ähnlichen Zeilen (kann sich zwischen der Unix-Socket- und Proxy-Konfiguration unterscheiden).
Dann geht es nur noch darum, die Datei zu erstellen und richtig zu konfigurieren.
Ich glaube, die Protokollstufe wird immer noch von verwendet,
php-fpm.conf
daher müssen Sie dies möglicherweise auch überprüfen.quelle