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

nginx php-fpmがphpエラーログを出力する方法

藏色散人
藏色散人オリジナル
2020-08-13 09:19:152752ブラウズ

php fpm 出力エラーの設定方法: 最初に「php-fpm.conf」ファイルを開き、次にコンテンツ「error_log = log/error_log」を追加し、次に「php.ini」ファイルを開いてコンテンツを追加します。 " log_errors = On"; 最後に再起動します。

nginx php-fpmがphpエラーログを出力する方法

推奨: 「PHP ビデオ チュートリアル

この記事では、nginx サーバーで次の設定を行います。興味のある方はphp-fpmでphpのエラーログを出力する方法を参考にしていただければ幸いです。


nginx は単なる Web サーバーであるため、nginx のアクセスログにはアクセスされたページのみが記録され、php は存在しません。 エラーログ情報。

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

理由:
php-fpm php-fpm.conf のデフォルト設定ファイルは、ワーカー プロセスのエラー出力を閉じて、/ に直接リダイレクトします。 dev/ null なので、nginx エラーが発生します php-fpmのログもエラーログもphpのエラーログは見れません。

nginx で php-fpm が 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_admin_value[error_log] パラメータは、 php.ini の error_log パラメータ
So phpinfo() で表示される最終的な error_log ファイルに書き込み可能なアクセス許可があり、php_admin_value[error_log] パラメータが設定されていないことを確認してください。設定されていない場合、エラー ログは php のエラー ログに出力されます。 -fpm。

2. php.ini の場所が見つかりません。結果を表示するには、php の phpinfo() を使用します。 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 インターフェースに返され、nginx は FastCGI からのエラー戻りを受信した後、それを nginx のエラーログに記録します。

PHP 5.3.9 以降のバージョンでは、PHP は、エラーが発生した後にのみ PHP エラーログに書き込もうとします。失敗するとFastCGIには戻らず、php-fpmのエラーログにエラーログが出力されます。

したがって、php のエラーログを nginx エラーログに出力したい場合は、php5.3.8 より前のバージョンを使用する必要があり、設定ファイル内の php の error_log は、php ワーカープロセスによって書き込むことができません。

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。