IIS7でPHPエラーを表示および記録するにはどうすればよいですか?


29

IIS 7サーバーでPHP 5.2.5を実行しているときに、PHPエラーを表示する際に問題が発生しています... PHPエラーが発生するたびに、サーバーは500内部サーバーエラーが発生したために表示されます。」

これは本番Webサイトには適した設定かもしれませんが、開発サーバーではかなり面倒です... ;-)

php.ini特定のフォルダにログを記録するだけでなく、画面にエラーを表示するように設定しようとしましたが、サーバーは以前にすべてのエラーをキャッチし、PHPによる防止と処理を行っているようです...

IISが画面にPHPエラーを表示するために私たちがしなければならないことを誰かが知っていますか?このトピックに関するリンク、ヒント、またはチュートリアルをいただければ幸いです。


まず、あなたはこれらを持っていることを確認しますlog_errors=1error_reporting=-1log_errors_max_len=0
パセリエ

ini_set("display_errors", "on");これらの行をphpファイルに追加します。
エリート

回答:


35

ただ、ダブルチェックに、あなたがにセットをログに記録しているかerror_reporting = E_ALL、そしてdisplay_errors = Onあなたの中にphp.ini?通常、これはIIS 7でこれらのエラーを表示するのに十分です。

次に、ローカルでエラーメッセージのみを表示するように設定されている可能性があるため、IIS設定を確認します。IIS 7構成エディターでは、これはsystem.webServer-> httpErrorsの下にあります。errorLocalをDetailedLocalOnlyからDetailedに変更する必要があります。これは明らかに、あなたのサイトを閲覧している誰でもエラーを見ることができることを意味します。

ここに画像の説明を入力してください

ここに画像の説明を入力してください

または、ローカルで保持したい場合は、リモートデスクトップを使用してサーバーにログインし、可能であればそこからアプリを実行できます。


1
はい、チェックしましたが、すべて正しく設定されています。
ベン

いくつかのトラブルシューティング情報を追加
Sam Cogan

1
errorModeを「DetailedLocalOnly」から「Detailed」に変更すると、問題が解決しました。ありがとう!
ベン

1
system.webServerの下のHTTPエラーのコレクションも削除する必要がありました。私がやるまでPHPで動作しませんでした。

1
system.webServer私の血でそれを強調し、メモを追加してください:「はい、コンボがあります」。
DIGI

2

「existingResponse」を「PassThrough」に設定する必要があります。その追加設定なしで実際のエラーメッセージは表示されませんでした。


1
この設定はどこにありますか?
ユージンマラ

0

これは、IISマネージャーGUIを使用して簡単に実行できます。サイトを選択し、エラーページをダブルクリックします。次に、「機能設定の編集...」を押して、デフォルトの「ローカルリクエストの詳細エラーおよびリモートリクエストのカスタムエラーページ」の代わりに「詳細エラー」オプションを選択します。Voilà、それは簡単!


ログとエラーはどこに表示されますか?
JukEboX

0

Webサーバーの設定をphp構成に移動する必要がありましたが、そこにエラー報告用の設定があり、デフォルトで実稼働に設定されています。ここでphp.iniと提案を変更した後でも、開発に変更する必要がありました。2008 R2でiis 7.5を使用しています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.