У меня Fedora 16 с Nginx и PHP-FPM. Все работает очень хорошо. Все журналы с PHP-уведомлениями, предупреждениями, ошибками и т. Д. Находятся в /var/log/php-fpm/www-error.log
.
Есть ли способ настроить PHP-FPM для записи ошибок в соответствующие файлы журналов, настроенные как журналы ошибок для Nginx? Итак, я хочу регистрировать ошибки PHP на виртуальный хост и не в одном глобальном файле. (как в Apache Httpd и PHP).
Директива PHP-FPM: catch_workers_output = yes
приведет к тому, что ошибки, отправленные PHP на stdout / stderr, будут отправлены обратно на nginx, и они будут зарегистрированы.
В PHP 5.2.4 и новее директива display_errors больше не является логическим, но принимает в качестве опции 'stderr'. Это должно привести к тому, что все ошибки вернутся в nginx и будут регистрироваться для каждого виртуального хоста.
Итак, в вашей конфигурации PHP-FPM:
php_admin_value[display_errors] = 'stderr'
Другой вариант - это директива:
php_admin_value[error_log] = /var/log/fpm-php.www.log
что вы, вероятно, используете сейчас. php-fpm.conf поддерживает некоторые переменные, например $ pool (который для вас, скорее всего, вернет www).
Если у вас более 1 пула, вы можете легко зарегистрировать их отдельно.
Однако беглый просмотр исходного кода показывает, что $ pool - единственная такая переменная.