現在の位置: ホーム> 最新記事一覧> display_errors構成と組み合わせて、PHPエラーデバッグエクスペリエンスを最適化する方法は?

display_errors構成と組み合わせて、PHPエラーデバッグエクスペリエンスを最適化する方法は?

M66 2025-08-07

PHP開発中、デバッグエラーは開発者の避けられない部分です。開発者が問題をより速く、より正確に特定して修正できるようにするために、PHPはdisplay_errors構成オプションを提供します。これにより、エラーデバッグエクスペリエンスが大幅に最適化できます。この記事では、 display_errors構成を組み合わせてPHPエラーデバッグの効率を向上させる方法について詳しく説明します。

display_errorsとは何ですか?

display_errorsは、エラーが発生したときにPHPがクライアントに直接エラーメッセージを表示するかどうかを制御するPHPの構成オプションです。このオプションがオンに設定されると、PHPはエラータイプ、ファイルパス、行番号、関連するスタックトレース情報など、ブラウザに詳細なエラー情報を表示します。これは開発とデバッグに非常に役立ちますが、生産環境では、敏感な情報の漏れを避けるために通常オフになります。

display_errors構成をオンにします

開発環境では、 Display_Errorsをオンにすると、開発者が構文エラー、警告、通知など、PHPプログラムのさまざまなエラーをリアルタイムで確認できます。この構成を有効にするには、通常、2つの方法があります。

1. PHP.ini構成ファイルを変更します

最も一般的な方法は、phpの構成ファイルphp.inidisplay_errorsを設定することです。

 <span><span><span class="hljs-attr">display_errors</span></span><span> = </span><span><span class="hljs-literal">On</span></span><span>
</span></span>

変更後、PHPサービスを再起動して構成を有効にします。

2。ini_set()関数を使用します

サーバーのグローバル構成を変更したくない場合は、PHPスクリプトでDisplay_Errorsを動的に設定できます。例えば:

 <span><span><span class="hljs-title function_ invoke__">ini_set</span></span><span>(</span><span><span class="hljs-string">'display_errors'</span></span><span>, </span><span><span class="hljs-number">1</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">error_reporting</span></span><span>(E_ALL);  </span><span><span class="hljs-comment">// あらゆる種類のエラーを表示します</span></span><span>
</span></span>

このように、 PHP.iniファイルが変更されていない場合でも、スクリプトでエラー表示を有効にすることができます。このようにして、異なるPHPファイルに異なるエラー表示ポリシーを設定できます。

ERROR_REPORTINGでデバッグ効果を改善します

Display_Errorsのみをオンにしても、デバッグエクスペリエンスを完全に最適化することはなく、 ERROR_REPORTING構成を合理的に使用することも重要です。 ERROR_REPORTINGは、PHPレポートのエラーの種類を設定するために使用されます。 display_errorsで使用して、指定されたレベルでエラーメッセージを表示できます。

たとえば、すべてのエラーを表示するように設定してください。

 <span><span><span class="hljs-title function_ invoke__">ini_set</span></span><span>(</span><span><span class="hljs-string">'display_errors'</span></span><span>, </span><span><span class="hljs-number">1</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">error_reporting</span></span><span>(E_ALL);  </span><span><span class="hljs-comment">// すべてのエラーを表示します,警告を含む、通知など</span></span><span>
</span></span>

これは、すべてのエラー、警告、通知が表示され、開発者がコードの実行ステータスをより包括的に理解するのに役立つことを意味します。一般的に使用されるerror_reporting構成値は次のとおりです。

  • e_all :すべてのエラーを表示します。

  • E_ERROR :致命的なエラーのみを表示します。

  • E_Warning :警告エラーを表示します。

  • e_notice :通知エラーを表示します。

  • E_Strict :コードに厳密な標準エラーが表示されます。

display_errorserror_reporting構成を組み合わせて、より詳細なエラーデバッグ情報をカスタマイズできます。

生産環境でdisplay_errorsを閉じることの重要性

開発環境でdisplay_errorsを有効にすることは非常に便利ですが、生産環境では、ユーザーに機密エラーメッセージを公開しないように機能をオフにする必要があります。攻撃者は、これらのエラーメッセージを使用して、システムの構造と潜在的な脆弱性を理解し、攻撃を開始できます。

生産中のdisplay_errorsを無効にするには、 php.iniで設定できます。

 <span><span><span class="hljs-attr">display_errors</span></span><span> = </span><span><span class="hljs-literal">Off</span></span><span>
</span></span>

または、次のコードを使用して、エラーディスプレイを動的にオフにします。

 <span><span><span class="hljs-title function_ invoke__">ini_set</span></span><span>(</span><span><span class="hljs-string">'display_errors'</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">error_reporting</span></span><span>(</span><span><span class="hljs-number">0</span></span><span>);  </span><span><span class="hljs-comment">// エラーは報告されていません</span></span><span>
</span></span>

生産環境では、ページに表示するのではなく、ログファイルにエラーメッセージをログに記録することをお勧めします。このようにして、開発者はログファイルを表示して、システムが正常に実行されているかどうかを確認し、ユーザーにデバッグ情報を表示しすぎることを避けます。

ロギング構成:log_errors

生産環境でエラーを効果的に追跡するために、エラーメッセージを直接表示する代わりに、PHPのlog_errors構成をログエラーログに有効にすることができます。次の構成を使用します。

 <span><span><span class="hljs-attr">log_errors</span></span><span> = </span><span><span class="hljs-literal">On</span></span><span>
</span><span><span class="hljs-attr">error_log</span></span><span> = /path/to/php-error.log  // ログファイルパスを設定します
</span></span>

このようにして、すべてのエラー情報が指定されたログファイルに記録され、開発者はユーザーエクスペリエンスに影響を与えることなくシステム操作とデバッグを確認できます。

結論は

display_errors構成オプションを合理的に構成し、 ERROR_REPORTINGおよびLOG_ERRORSと組み合わせて、PHP開発中のエラーデバッグエクスペリエンスを効果的に最適化できます。開発環境では、エラー表示と詳細なエラーレポートをオンにすることで、問題をすばやく見つけることができます。生産環境では、エラーディスプレイをオフにし、エラーログを有効にすると、システムが機密情報の漏れから保護できます。これらの構成をマスターすると、開発者が開発段階と起動段階の両方でより効率的に作業するのに役立ちます。