仮想ホストごとのログファイルに書き込むようにNGINX経由でPHP-FPMを構成する方法


11

Fedora 16にはNginxとPHP-FPMがあります。すべてが非常にうまく機能しています。PHPの通知、警告、エラーなどのログはすべてにあり/var/log/php-fpm/www-error.logます。

Nginxのエラーログとして設定された適切なログファイルにエラーを書き込むようにPHP-FPMを設定する方法はありますか?そのため、1つのグローバルファイルではなく、仮想ホストごとに PHPエラーを記録します。(Apache HttpdやPHPなど)。

回答:


14

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だけであるように見えます。


1
うーん、何か問題display_errors="stderr"があるようです。動作するようにテストしましたか?
パセリエ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.