ホームページ >php教程 >php手册 >PHP エラー ログを記録します。display_errors と log_errors の違いを記録します。

PHP エラー ログを記録します。display_errors と log_errors の違いを記録します。

WBOY
WBOYオリジナル
2016-06-13 11:57:37904ブラウズ

display_errors
エラー エコーは開発モードでよく使用されますが、多くのアプリケーションは公式環境ではこのオプションをオフにすることを忘れています。エラー エコーによって多くの機密情報が公開される可能性があり、攻撃者の次の攻撃が容易になります。このオプションをオフにすることをお勧めします。
display_errors = On
on 状態では、エラーが発生するとエラーが報告され、エラー メッセージが表示されます
dispaly_errors = Off
オフ状態では、エラーが発生すると、「サーバー エラー」というプロンプトが表示されます。ただし、エラー メッセージは表示されません。

log_errors
これを正式な環境で使用し、エラー情報をログに記録してください。エラーエコーをオフにするのにちょうどいいタイミングです。

PHP 開発者の場合、製品が使用されたら、最初に行うことは、パス、データベース接続、データ テーブル、およびこれらのエラーによって公開されるその他の情報による損傷を避けるために、display_errors オプションをオフにすることです。 .ハッカーの攻撃に。

製品が使用されると必ずエラー メッセージが表示されますが、開発者にとって非常に役立つこの情報を記録するにはどうすればよいでしょうか。
PHP の log_errors をオンにするだけで、デフォルトでは Apache の error.log ファイルなどの WEB サーバーのログ ファイルに記録されます。
もちろんエラーログを指定したファイルに記録することも可能です。

コードをコピー コードは次のとおりです:


# vim /etc/php.inidisplay_errors = Off
log_errors =
error_log = /var/log/php-error.log


では、error_log = syslog を設定して、これらのエラー メッセージをオペレーティング システム ログに記録することもできます。
display_errors = Off //display は中国語で表示を意味するため、display_error=off はエラーを表示しないことを意味します。
error_reporting は、エラー メッセージ レポートのレベルを設定します。
2047 E_ALL でなければならなかったと記憶しています。
php.ini ファイルには多くの構成設定があります。 Linux に PHP および Apache 2 をインストールする手順 (「参考文献」を参照) に記載されているように、php.ini ファイルを設定し、適切なディレクトリに配置しておく必要があります。 PHP アプリケーションをデバッグするときに注意すべき構成変数が 2 つあります。これら 2 つの変数とそのデフォルト値は次のとおりです。
display_errors = Off //すべてのエラー メッセージをオフにします。 ON の場合、すべてのエラー メッセージが表示されます。
error_reporting = E_ALL
E_ALL は、不適切なコーディング手法から無害なヒント、エラーまで、あらゆるものをカバーします。 E_ALL は、開発プロセスとしては少し詳細すぎるため、いくつかの小さなこと (変数が初期化されていないなど) について画面にプロンプ​​トも表示され、ブラウザーの出力
が台無しになるため、2047 の使用はお勧めできません。デフォルト値を変更することをお勧めします。 error_reporting = E_ALL & ~E_NOTICE

PHP.ini での display_errors = Off の失敗に対する解決策

問題:
PHP 設定ファイル php.ini で Display_errors = Off に設定されていますが、動作中に Web ページにエラー メッセージが表示されます。
解決策:
公式ステートメントによれば、log_errors=On を確認した後、この log_errors が On に設定されている場合、error_log ファイルが指定されていないか指定されている必要があります。ファイルには書き込み権限がありません。この場合、ファイルは通常の出力チャネルに出力され、display_errors の指定された Off が無効になり、エラー メッセージが出力されます。したがって、log_errors = Off に設定すると、問題は解決されます。

error_reporting (7) は、エラー メッセージ レポートのレベルの設定を意味することがよくあります。

値定数
1 E_ERROR
2 E_WARNING
4 E_PARSE
8 E_NOTICE
16 E_CORE_ERROR
32 E_CORE_WARNING
64 E_COMPILE_ERROR
128 ILE_ 警告
256 E_USER_ERROR
512 E_USER_WARNING
1024 E_USER_NOTICE
2047 E_ALL
2048 E_STRICT
ただし、7=1 2 4
1 E_ERROR 2 E_WARNING 4 を意味しますSE

コードをコピー コードは次のとおりです。


//エラー報告を無効にする
error_reporting(0);
//実行時エラーを報告します
error_reporting(E_ERROR | E_WARNING | E_PARSE);
//すべてのエラーを報告します
error_reporting(E_ALL)>

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