nginx は apache とは異なり、apache では php のエラーログを直接指定できるため、php 実行時のエラー情報が php のエラーログに直接入力され、簡単に参照することができます。
nginx では、次のようになります。nginx は、ページ訪問のアクセス ログのみを記録します。 PHP エラー ログ情報は残りません。 nginx は php へのリクエストを php-fpm fastcgi プロセスに送信して処理しますが、デフォルトの php-fpm では php-fpm のエラーメッセージのみが出力され、php-fpm のエラーログには php のエラーログは表示されません。
理由は、php-fpm 設定ファイル php-fpm.conf がデフォルトでワーカー プロセスのエラー出力をオフにし、/dev/null に直接リダイレクトするため、nginx のエラー ログと php を使用するためです。・fpmのエラーログはphpのエラーログが見れません。
したがって、php-fpm が nginx で php エラー ログを記録しないことを確認するには、次の設定を行う必要があります:
1、php-fpm.conf の設定を変更します 、そうでない場合は追加してください:
コードをコピーします コードは次のとおりです:
[global]
; 注: デフォルトのプレフィックスは /usr/ ですlocal/php/var
error_log = log/php_error_log
[www]
catch_workers_output = yes
2. そうでない場合は、php.ini の設定 を変更します。追加:
コードをコピーします。コードは次のとおりです。
log_errors = on
error_log = "/usr/local/php/var/log/error_log"
error_reporting=e_all&~e_notice
3. php-fpm
php がエラーを実行すると、「/usr/local」にエラー ログが表示されます。 /lnmp/php/var/log/php_error_log"
表示された場合:
コードをコピーします。コードは次のとおりです:
[root@localhost など] # service php-fpm restart
php -fpm を正常にシャットダウンします。done
starting php-fpm [17-apr-2014 18:40:52] error: [/usr/local/php/etc/php- fpm.conf:5] 不明なエントリ 'catch_workers_
[17-apr-2014 18:40:52] エラー: 設定ファイル '/usr/local/php/etc/php-fpm.conf'## のロードに失敗しました#[17-apr-2014 18:40:52] エラー: fpm 初期化に失敗しました
failed
以上がNginx で PHP-FPM を使用するときに PHP エラー ログを構成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。