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