Como configurar o PHP-FPM sobre NGINX para gravar em arquivos de log por host virtual

11

Eu tenho o Fedora 16 com Nginx e PHP-FPM. Tudo está funcionando muito bem. Todos os logs com PHP avisos, advertências, erros etc estão em /var/log/php-fpm/www-error.log.

Existe uma maneira de configurar o PHP-FPM para gravar erros nos arquivos de log adequados configurados como logs de erro para o Nginx? Então, eu quero registrar erros de PHP por host virtual e não em um arquivo global. (como no Apache Httpd e PHP).

B14D3
fonte

Respostas:

14

A diretiva PHP-FPM: catch_workers_output = yes causará erros que o PHP envia ao stdout / stderr para serem enviados de volta ao nginx e eles serão registrados.

No PHP 5.2.4 e mais recente, a diretiva display_errors não é mais um booleano, mas aceita 'stderr' como uma opção. Isso deve fazer com que todos os erros retornem ao nginx e sejam registrados por vhost.

Então, na sua configuração do PHP-FPM:

php_admin_value[display_errors] = 'stderr'

Sua outra opção é a diretiva:

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

que é o que você provavelmente está usando agora. O php-fpm.conf suporta algumas variáveis, como $ pool (que para você provavelmente retornará 'www').

Se você tiver mais de um pool, poderá registrá-los facilmente separadamente.

De uma rápida navegação pelo código-fonte, parece que $ pool é a única variável desse tipo.

Allan Jude
fonte
1
Hmm, parece haver algum problemadisplay_errors="stderr" . Você já testou para funcionar?
Pacerier 27/08/2015