J'essaie de comprendre où vont les erreurs PHP dans ma configuration. J'exécute nginx comme proxy inverse de PHP-FPM, mais je ne vois pas les différents messages E_NOTICE ou E_WARNING que mon application produit. La seule raison pour laquelle je sais qu'ils se produisent est des réponses échouées et des traces de pile de capture NewRelic.
Voici la configuration de la journalisation:
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
J'ai configuré PHP pour se connecter à syslog, mais FPM n'a pas de fonction syslog donc il se connecte à un fichier. Peu m'importe où les erreurs se terminent, juste qu'elles se retrouvent quelque part.
Avez-vous des indices sur la façon dont cela pourrait fonctionner?
Réponses:
Selon le fichier de configuration, FPM prend en charge l'envoi d'erreurs à syslog.
la source
Êtes-vous sûr de votre hypothèse pour le rsyslog.conf? Autrement dit, êtes-vous sûr que tous ces messages Syslog sont marqués avec "php" en minuscules?
Essayez de définir syslog.facility sur quelque chose comme local2 (ou local1 ou local7) et remplacez votre ligne de configuration rsyslog.conf en conséquence:
la source
Lorsque vous utilisez php-fpm, il semble remplacer les
php.ini
paramètres.La journalisation doit probablement être configurée
.../www.conf
.J'ai décommenté ces lignes afin de récupérer les journaux PHP.
L'utilisateur et le groupe du serveur Web peuvent également être trouvés dans ce fichier sous des lignes similaires à celles-ci (peuvent différer entre la configuration de socket et proxy Unix).
Il suffit ensuite de créer le fichier et de le configurer correctement.
Je crois que le niveau de journalisation est toujours utilisé
php-fpm.conf
, vous devrez donc peut-être également vérifier cela.la source