Como configurar o php-fpm para registrar logs em arquivos de log configurados em nginx virtualhosts

11

Eu tenho o Fedora 16 com nginx e php-fpm. Tudo está funcionando muito bem. Todos os logs com aviso do php, erro de aviso etc. estão em /var/log/php-fpm/www-error.log. Existe uma maneira de configurar o php-fpm para gravar erros em arquivos de log apropriados configurados como logs de erro para o nginx? Então, eu quero logs de erros de php por host virtual não em um arquivo global. (como em apache e php).

    
por B14D3 08.05.2012 / 14:40

1 resposta

14

A diretiva PHP-FPM: catch_workers_output = yes irá causar erros que o PHP envia para o stdout / stderr para ser enviado 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 voltem ao nginx e sejam registrados por vhost.

Então, em 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 separadamente.

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

    
por 08.05.2012 / 18:42