Re: nginx не пишет в свои логи то, что передает FastCGI в stderr
Maxim Dounin
mdounin на mdounin.ru
Пт Мар 16 12:50:06 UTC 2012
Hello!
On Fri, Mar 16, 2012 at 08:30:48AM -0400, jekakm wrote:
> Добрый день!
>
> Nginx 0.7.67, пробовал еще на 1.0.11 - не пишет в
> свои логи сообщения об ошибках от fastcgi.
> Конфиг: http://pastebin.com/yLDRM0m1
> fastcgi_params: http://pastebin.com/t4YY2ZdC
>
> В php.ini display_errors = Off, log_errors = On, fastcgi.logging =
> 1(вообще-то должно ставиться по дефолту,
> но я еще явно включил).
> В логах веб-сервера пусто, хотя fastcgi
> точно отправляет сообщения в stderr. В
> конфиге php-fpm пула включил catch_workers_output =
> yes
> и в логе php-fpm начали логироваться
> ошибки.
>
> [16-Mar-2012 12:42:07] WARNING: [pool www] child 31061 said into stderr:
> "NOTICE: PHP message: PHP Fatal error: Call to undefined function
> ffphpinfo() in /var/www/example.com/current/web/app.php on line 2"
> [16-Mar-2012 12:42:07] WARNING: [pool www] child 31063 said into stderr:
> "NOTICE: PHP message: PHP Fatal error: Call to undefined function
> ffphpinfo() in /var/www/example.com/current/web/app.php on line 2"
Что как бы намекает, что по каким-то причинам php сообщает ошибки
в stderr, а не в соответствующий fastcgi-поток. В результате
nginx этих сообщений не видит и залоггировать не может. Нужно
настраивать php, со стороны nginx'а тут ничего не сделать.
Maxim Dounin
Подробная информация о списке рассылки nginx-ru