2016-04-30 2 views
0

Я использую Nginx 1.8.1 в качестве обратного прокси-сервера перед PHP 5.6.20 через FastCGI (PHP-FPM), и я обнаружил, что все журналы уведомлений/предупреждений/ошибок из PHP также регистрируются в Nginx как ошибки. Есть ли способ предотвратить распространение таких журналов на журналы Nginx? Я хочу, чтобы они вошли в файл журнала PHP.Как предотвратить Nginx от захвата ошибок из FastCGI/PHP-FPM?

Вот пример:

[29-Apr-2016 22:23:10] WARNING: [pool www] child 20 said into stderr: "NOTICE: PHP message: PHP Warning: phpinfo(): It is not safe to rely on the system's timezone settings. You are required to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /opt/web-app/index.php on line 2"

тот же журнал им добавляется в файл журнала Nginx»как ошибка:

2016/04/29 22:23:10 [error] 6#0: 1 FastCGI sent in stderr: "PHP message: PHP Warning: phpinfo(): It is not safe to rely on the system's timezone settings. You are *required to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /opt/web-app/index.php on line 2" while reading response header from upstream, client: 172.18.0.1, server: , request: "GET /favicon.ico HTTP/1.1", upstream: "fastcgi://172.18.0.2:9000", host: "localhost:8080", referrer: " http://localhost:8080/index.php "

Есть ли какие-либо изменения, которые я могу сделать, чтобы мой очень простой конфигурации файлы для Nginx или PHP-FPM?

ответ

0

Изменение catch_workers_output к no должен сделать трюк:

catch_workers_output = no 

Это позволит лог сообщений PHP в конфигурации, но предотвратить эти сообщения передаются через соединение Fastcgi к Nginx.

+0

К сожалению, это просто подавляет все журналы от рабочих. Они даже не будут помещены в файл ошибки PHP. – Gustavo

+0

Попробуйте изменить значение директивы error_log (make - файл, скажем _/var/log/php-fpm.www.log_), с исходным значением для 'catch_workers_output'. – T0xicCode

+0

'error_log' был настроен и работает правильно. Я написал комментарий выше, после тестирования 'catch_workers_output' с' yes' и 'no'. Вот мой файл конфигурации, btw: https://github.com/gnarea/docker-alpine-php-fpm/blob/0379fb6c1badd81c3bca3c39ed2de20d1c42c70e/php-fpm.conf – Gustavo

Смежные вопросы