PHPのエラー表示問題の解決方法
P粉469090753
2023-08-20 11:45:59
<p>PHP ini ファイル (<code>php.ini</code>) を確認したところ、<code>display_errors</code> が設定されており、エラー報告も <code>E_ALL</ code> になっています。 。 Apache Webサーバーを再起動しました。 </p>
<p>これらの行をスクリプトの先頭に追加しましたが、単純な解析エラーさえ捕捉できませんでした。たとえば、<code>"$"</code> で変数を宣言しますが、終了ステートメント <code>";"</code> がありません。ただし、これらのエラーに関してはすべてのスクリプトで空白のページが表示されますが、ブラウザ出力で実際に <strong>エラー</strong> を確認したいと考えています。 </p>
<pre class="brush:php;toolbar:false;">error_reporting(E_ALL);
ini_set('display_errors', 1);</pre>
<p>他に行う必要があることはありますか? </p>
ランタイム エラー出力が有効になっている場合、同じファイル内の解析エラーを捕捉することはできません。これは、実際に何かを実行する前にファイルが解析されるためです (途中でエラーが発生するため、何も実行されません)。実際のサーバー構成を変更して、display_errors がオンになり、適切な error_reporting レベルが使用されるようにする必要があります。 php.ini にアクセスできない場合は、サーバーによっては .htaccess などを使用できる場合があります。
この質問には追加情報が含まれる場合があります。
###開発環境###
これは私にとって常にうまくいきます:
リーリーただし、これによって PHP は同じファイル内で発生した解析エラーを表示しません。これらのエラーを表示する唯一の方法は、php.ini ファイルを変更して次の行を追加することです:
リーリー(
php.iniにアクセスできない場合は、この行を
リーリー.htaccess
に追加しても機能する可能性があります):リーリー ###本番環境###
上記の提案は開発環境にのみ適用されることに注意してください。実稼働環境では、これを次のように設定する必要があります:これで、エラー ログにすべてのエラーが表示されます。
PHP エラー ログの場所を参照してください。AJAX 呼び出し AJAX 呼び出しの場合は、開発サーバーで DevTools (F12) を開き、[ネットワーク] タブを選択します。 次に、結果を確認したいリクエストを行うと、その結果が [ネットワーク] タブに表示されます。それをクリックして、「応答」タブを選択します。そこに正確な出力が表示されます。
運用サーバーでは、エラー ログを確認するだけです。