Cómo configurar PHP-FPM sobre NGINX para escribir en archivos de registro por host virtual

11

Tengo Fedora 16 con Nginx y PHP-FPM. Todo funciona muy bien. Todos los registros con avisos PHP, advertencias, errores, etc. están en /var/log/php-fpm/www-error.log.

¿Hay alguna manera de configurar PHP-FPM para escribir errores en los archivos de registro adecuados configurados como registros de errores para Nginx? Por lo tanto, quiero registrar errores PHP por host virtual y no en un archivo global. (como en Apache Httpd y PHP).

B14D3
fuente

Respuestas:

14

La directiva PHP-FPM: catch_workers_output = yes provocará que los errores que PHP envíe a stdout / stderr se devuelvan a nginx, y se registrarán.

En PHP 5.2.4 y posteriores, la directiva display_errors ya no es booleana, pero aceptará 'stderr' como una opción. Esto debería hacer que todos los errores vuelvan a nginx y se registren por vhost.

Entonces, en su configuración PHP-FPM:

php_admin_value[display_errors] = 'stderr'

Su otra opción es la directiva:

php_admin_value[error_log] = /var/log/fpm-php.www.log

que es lo que probablemente estés usando ahora. php-fpm.conf admite algunas variables, como $ pool (que para usted probablemente devolverá 'www').

Si tiene más de 1 grupo, puede registrarlos fácilmente por separado.

Sin embargo, desde una exploración rápida a través del código fuente, parece que $ pool es la única variable de este tipo.

Allan Jude
fuente
1
Hmm, parece haber algún problema condisplay_errors="stderr" . ¿Lo has probado para que funcione?
Pacerier