ホームページ  >  記事  >  バックエンド開発  >  nginx php-fpm出力phpエラーログ

nginx php-fpm出力phpエラーログ

angryTom
angryTom転載
2019-10-15 16:16:183708ブラウズ

nginx php-fpm出力phpエラーログ

nginx は Web サーバーですので、nginx のアクセスログはアクセスしたページのみが記録され、php のエラーログ情報は残りません。

nginx は、php のリクエストを php-fpm fastcgi プロセスに送信して処理します。デフォルトの php-fpm は php-fpm のエラー メッセージのみを出力し、php-fpm のエラー ログには php は表示されません。 fpm.errorlog

の理由は、php-fpm 設定ファイル php-fpm.conf がデフォルトでワーカー プロセスのエラー出力をオフにし、/dev/null に直接リダイレクトするように設定されているためです。 phpのエラーログではnginxのエラーログやphp-fpmのエラーログは見られません。

デバッグは非常に苦痛です。 php-fpm が nginx で php エラー ログを記録しない問題を解決する方法:

1. php-fpm.conf の設定を変更し、

catch_workers_output = yes
error_log = log/error_log
を追加します。

2. php.ini の設定を変更します。そうでない場合は、

log_errors = On
error_log = "/usr/local/lnmp/php/var/log/error_log"
error_reporting=E_ALL&~E_NOTICE

3. php-fpm
を再起動します。 PHP の実行エラーが発生した場合に参照してください。エラー ログは「/usr/local/lnmp/php/var/log/error_log」にあります。

注:

1. php-fpm.conf php.ini の php_admin_value[error_log] パラメータは、php.ini の error_log パラメータをオーバーライドします。
したがって、phpinfo() で表示される最終的な error_log ファイルに書き込み権限があり、php_admin_value[ error_log]パラメータを指定しない場合、エラーログはphp-fpmのエラーログに出力されます。

2. php.ini の場所が見つかりません。結果を表示するには、php の phpinfo() を使用してください。

3. PHP エラー ログを変更する方法ページまたは画面に出力する
php.iniを修正する

display_errors = off //不显示错误信息(不输出到页面或屏幕上)
log_errors = on //记录错误信息(保存到日志文件中)
error_reporting = E_ALL //捕获所有错误信息
error_log = //设置日志文件名

プログラム内の上記の設定を修正する

ini_set("display_errors",0)
ini_set("error_reporting",E_ALL); //这个值好像是个PHP的常量
ini_set("error_log","<日志文件名>")
ini_set("log_errors",1);

4. phpエラーログの出力方法nginx エラー ログへ
PHP 5.3.8 以前のバージョンでは、PHP が FastCGI を介して実行され、ユーザー アクセス中にエラーが発生すると、まず PHP のエラー ログに書き込まれます。
PHP のエラー ログに書き込めない場合は、エラー内容が返されます。FastCGI インターフェイスを指定すると、FastCGI からのエラー戻りを受信した後、nginx がそれを nginx エラーログに記録します。
PHP 5.3.9 以降のバージョンでは、PHP は、エラー内容が返された後にのみ PHP エラーログに書き込もうとします。失敗するとFastCGIに戻れなくなり、php-fpmのエラーログにエラーログが出力されます。
したがって、php のエラーログを nginx エラーログに出力したい場合は、php5.3.8 より前のバージョンを使用する必要があり、設定ファイル内の php の error_log は、php ワーカープロセスによって書き込むことができません。

PHP 関連の知識の詳細については、PHP 中国語 Web サイト をご覧ください。

以上がnginx php-fpm出力phpエラーログの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcnblogs.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。