Pages

2016/02/08

IISのPHPページで500エラーが表示される

IISのPHPページで500エラーが表示される
IIS に設定した PHP で 500 エラーが表示されることがあります。全てのエラーが 500 エラーとして表示されるため原因の特定がよくわからないのですが、これは設定をいじる必要があります。


php.iniの編集

まず、print 文のような簡単なものが実行できるかどうかを試してみて、それすら動かない場合は PHP を動かすための設定を見直します。print 文は動作するけど、phpinfo() では「500エラー」となってしまう場合は、どんなエラーが出ているのかをブラウザに通知させるために、php.ini 設定を見なおしてみましょう。
php.ini ファイルは PHP をインストールしたフォルダにあるはずですが、C:\Program Files (x86)\PHP\ などにあることが多いと思います。
(IIS に PHP の設定をしているなら、IIS の [ハンドラーマッピング] に登録されている PHP_via_FastCGI にパスがあります)

そもそも IIS 上でなぜすべての PHP エラーが 500 エラーになってしまうのかというと、PHP の設定上 log_errors = On となっているにもかかわらずログファイルの出力先が指定されていないというお粗末な状況になっているからです。

log_errors = On での設定
以下の項目を見なおしてみてください。エラーログの出力先(error_log )は、自分の環境に合わせて変更します。
error_log = "C:\php\error.log"
date.timezone = Asia/Tokyo
fastcgi.impersonate = 1
cgi.fix_pathinfo = 1
cgi.force_redirect = 0
extension_dir = "./ext"
ブラウザにエラー内容を表示させたい場合は、以下も設定します。
display_errors = On
display_startup_errors = On

Related Posts Plugin for WordPress, Blogger...