Назад | Перейти на главную страницу

Как настроить PHP-FPM поверх NGINX для записи в файлы журнала для каждого виртуального хоста

У меня 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 - единственная такая переменная.