2011年3月20日日曜日

サーバー不調→復活

数あるWindowsの種類の中でもマイナーとなるWindows Web Server 2008(無印)を使って自宅にWebサーバー兼ファイルサーバー兼VPCサーバー兼録画サーバーを構築し2年ほど安定稼働している。
とある事からWebサーバーのPHPをアップデートしようかと思ったのが事の始まりだった。

3月11日に発生した東北関東大震災の福島第1原発における東電並に後手後手になってしまったが、最後の砦は守ったというか、再インストールだけは回避することができた。

もともとセットアップ時におけるIIS+PHPのシステムは簡単にインストールすることができる公式のセットアップ等があったわけでもなく、ZendCore2.5.2を使用してPHPを利用出来るようにしていた。
(今は年契約のライセンス制・・・・)
今はWebPlatformInstallerなるものが存在するのでまだ楽になっている。

発生した現象は
・「既定のドキュメント」にindex.phpを設定しても無視される。
・phpinfo()は正常に表示される。
・「ディレクトリの参照」をON/OFFどちらに設定しても無効扱い。
・サーバーエラー500.21とか良く解らんのがず~~~っと発生。

やったこと
ZendCoreのアンインストール
PHP532のzipファイルを解凍しインストール&IIS側でのFastCGI設定等
→この時点で本来は正常に動作するはず。が、エラー・・・・
WebPlatformInstallerのインストール
もろもろインストールされることを祈ってWordPressをWPIにてインストール
→動きません
IISそのものを[役割の削除]にてアンインストール&最低限の機能のみでインストール
PHP5.3.2をFastCGIにて設定
→phpinfo()は正常に表示されるが既定のドキュメント・ディレクトリの参照が無視されることでエラー
「ハンドラマッピング」・「FastCGIの設定」からPHPに関するものを手動にて削除
ZendCore2.5.2を1からインストール
→既定のドキュメント・ディレクトリの参照が無視されるがPHPは正常に動作している
ZendCore2.5.2を再びアンインストール
「サイト」のDefault Web Site以外のサイトを削除
Default Web SiteのIISグループにある機能(ハンドラマッピング、既定のドキュメント等)について1つずつ「継承元に戻す」を行う。(要はできるだけデフォルトに戻す)
親の設定からハンドラマッピング、FastCGI、からPHPに関する設定を全て削除する
WPIにてWordPressをインストール
→Default Web Site配下に作成したWordPressは正常に動作した
Default Web Site以外のサイトについてはそれぞれハンドラマッピングでPHPを割り当てる

元通り。

2日掛かった
実は何が原因だったのか全く不明。
現象確認用にVPCにてWindows Web Server 2008をセットアップしてみたが徒労に終わった。
安定環境はイジるべきではないという一般的な教訓を得た