web-dev-qa-db-ja.com

NGINX上のPHP-FPMを設定して、virtualhostごとのログファイルに書き込む方法

NginxとPHP-FPMを備えたFedora 16を使用しています。すべてが非常に良好に機能しています。 PHP通知、警告、エラーなどのすべてのログは/var/log/php-fpm/www-error.log

Nginxのエラーログとして構成された適切なログファイルにエラーを書き込むようにPHP-FPMを構成する方法はありますか?したがって、PHPエラーper-virtualhostをログに記録し、(Apache HttpdやPHPのように)1つのグローバルファイルに記録したくありません。

11
B14D3

PHP-FPMディレクティブ:catch_workers_output = yesはエラーの原因になりますPHP stdout/stderrに送信してnginxに送り返され、ログに記録されます。

PHP 5.2.4以降では、ディレクティブ display_errors はブール値ではなくなりましたが、 'stderr'をオプションとして受け入れます。これにより、すべてのエラーが発生します。 nginxに戻り、vhostごとにログに記録されます。

したがって、PHP-FPM設定で:

php_admin_value[display_errors] = 'stderr'

他のオプションはディレクティブです:

php_admin_value[error_log] = /var/log/fpm-php.www.log

これは、現在使用している可能性が高いものです。 php-fpm.confは、$ poolなどのいくつかの変数をサポートします(これは、おそらく「www」を返します)。

複数のプールがある場合は、簡単に個別にログに記録できます。

ソースコードをざっと見てみると、$ poolだけがそのような変数です。

14
Allan Jude