Estoy tratando de averiguar a dónde van los errores de PHP en mi configuración. Estoy ejecutando nginx como el proxy inverso para PHP-FPM, pero no veo los diversos mensajes E_NOTICE o E_WARNING que mi aplicación está produciendo. La única razón por la que sé que están sucediendo es por respuestas fallidas y trazas de pila de captura de NewRelic.
Aquí está la configuración de registro:
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
He configurado PHP para iniciar sesión en syslog, sin embargo, FPM no tiene la función syslog, por lo que está iniciando sesión en un archivo. Realmente no me importa dónde terminan los errores, solo que terminan en algún lugar.
¿Alguna pista sobre cómo podría hacer que esto funcione?
Respuestas:
Según el archivo de configuración, FPM admite el envío de errores a syslog.
fuente
¿Está seguro de su suposición para rsyslog.conf? Es decir, ¿está seguro de que todos los mensajes de syslog están etiquetados con minúsculas "php"?
Intente configurar syslog.facility en algo como local2 (o local1 o local7) y reemplace su rsyslog.conf config-line en consecuencia:
fuente
Cuando usa php-fpm, parece anular la
php.ini
configuración.Lo más probable es que sea necesario configurar el registro
.../www.conf
.Descomenté estas líneas para obtener los registros de PHP.
El usuario y el grupo del servidor web también se pueden encontrar en este archivo en líneas similares a esta (pueden diferir entre la configuración de socket y proxy de Unix).
Entonces es solo cuestión de crear el archivo y configurarlo correctamente.
Creo que el nivel de registro todavía se usa, por
php-fpm.conf
lo que es posible que también deba verificar esto.fuente