ローカルの Windows IIS に WordPress をセットアップしようとしてはまったのでメモしておきます。
事前に PHP と MySQL をセットアップし、動作しているものとして読んでください。
別の仕事(本業)で Web GIS 製品も扱うので IIS で新しくサイトを作成し、83 とか適当なポートを割り当てました。
そこに WordPress と PHPMyAdmin をダウンロードして展開し、ブラウザからアクセスすると画面が真っ白(Firefox)、Internet Explorer だと 500 エラーを返します。
を書いた index.php を作成して該当のサーバに設置しても問題なく表示されてます。
このせいで PHP の設定には問題ないと錯覚することになります。
仕事帰りの先輩を引き留めて見てもらうも解決できず、、、翌日へ繰り越しに。
翌日、エラー情報のトレースから始めようということでネットを検索すると以下のサイトが見つかる。
IIS7 のトレース機能を使用して失敗した要求をトラブルシューティングする
//technet.microsoft.com/ja-jp/library/dd647604.aspx
この情報を元に IIS マネージャーで以下の設定を行いました。
- 作成したサイトで、[操作] ウィンドウ → [失敗した要求トレース...] をクリック
※「失敗した要求トレースの追加」項目がない場合は「役割サービスの追加」で「トレース」を追加してください。 - [Web サイトの失敗した要求トレース設定の編集] を 有効にする
- サイトを選択し、[失敗した要求トレースの規則] をダブルクリック
- [失敗した要求トレースの規則] で右上の [操作] ウィンドウ → [追加...] をクリック
- [失敗した要求トレース規則の追加] ダイアログで、[すべてのコンテンツ] をチェックして [次へ]
- [どの条件で要求をトレースしますか?] で「状態コード」にチェックを入れ、"500" を入力(今回のエラーは 500 エラーなので)し、[次へ]
- そのまま [終了] をクリックして追加
- 再度 Web ブラウザで該当 URL にアクセスしてエラーを発生させます。その後で、2.で設定したフォルダに生成された XML を表示します。C:\inetpub\logs\FailedReqLogFiles\W3SVCxx
FastCgiModule の Notification 128 が発生していることが分かりました。この情報を検索すると以下のサイトが見つかり、open_basedir の設定が怪しいことが判明します。
//symfoware.blog68.fc2.com/blog-entry-1077.html
今回の原因
php.ini のパラメータが以下のように設定されており、ポート83 用に切ったディレクトリが対象となってませんでした。
open_basedir = C:\inetpub\wwwroot
open_basedir = C:\inetpub と書き換えて解決!
先日引き留めた先輩曰く、
「やっぱ Apache でっせ。」