[0] Windows版ZendServerのhttpd.confを編集しても設定が反映されない場合-[Id of Radiance ver.5]





■ Windows版ZendServerのhttpd.confを編集しても設定が反映されない場合

 今日のアクセス履歴で「zendserver documentroot 変わらない」とゆーワードで来た方がいらっしゃったのですが、ひょっとして以前私が引っかかったのと同じ理由かもしれないので備忘録として記載しておきます。 

 その前に軽くご説明しときますと「ZendServer」とはPHP及びZendFrameworkを稼働させるためのWebアプリケーションサーバ。その実体はApache+PHPにZendFramework環境を搭載し、且つサーバ操作・設定用のGUIを搭載したもので、それぞれを個別にインストールするよりかは簡単にZendFramework環境を構築できるものです。LinuxだったらApache+PHPは標準として入っている事が多いのでZendFrameworkを入れてApacheを設定するだけなのでそれほど意味はない(※最適化とか別の利点はありますが)ですが、Windowsの場合にApacheごと1つのインストーラで導入できるので、それぞれを個別にインストールしたり、あるいはIISでPHPを動かす設定を行うより楽に環境が構築できます。プラットフォームを変更する可能性がある場合にも有効でしょうな。
 そいや何年か前に「IISでもPHPがちゃんと動くようになったよ!」とMSが盛んに言ってる時期があったけどアレってどうなったんでしょね。個人的には結局「PHPを動かすのにIISを選択するもんじゃない」とゆー結論に達しましたが。
 話を戻すと、結局のところインストールされるものはフツーにApacheでありPHPなので、設定方法は通常通りhttpd.confやらphp.iniやらのテキストを編集することで可能です。一部設定はGUIでも可能ですが慣れてる人は直接confなりiniなりを編集した方が早いと思います。DocumentRootの設定も然り。

 …と、前置きが長くなりましたな。ぶちゃけそんな複雑な話では実はなく、それどころかZendServerの話でもなく。
 インストール対象のOSがWindows7や2008Serverなどで、ZnedServerのインストール先を「Program Files」(含む(x86))にしてしまった場合、あのフォルダの配下はいわゆるUACにより通常権限でのファイルの書き換えができなくなっているため、「フツーの方法でテキストエディタなどからhttpd.confを開いて保存しても正式な登録として反映されない」とゆー罠があります。コレがヤらしいのは正式に登録はされなくてもどっかに仮保存されてるらしく、保存→再び開くとちゃんとデータが書き換わって見える点。なので「あれー?ちゃんと設定ファイル書き換わってるなー、でも設定反映しないなー」とすげー悩む事になるわけです。コレは「Program Files」配下に限らずWindows配下のhostsファイルとかも同様。
 とりあえず対処方法はメモ帳などのテキストエディタを右クリック→「管理者として実行」で管理者権限起動し、その上で「ファイル」メニューから目的のファイルを呼び出して編集→保存すること。対象ファイルをD&Dしてはダメ。
 根本的な対策としては「Program Files」とかのUACによって特殊な管理をされているフォルダを避けてインストールすること。 ま、セキュリティ的にそれが良いかどうかは別物ですが。

 そもそも根本的な問題としてUACの制御方法が一般人にとてもわかりにくい、とゆーこれまで議論百出した話になるわけですが。まあその可能性さえ押さえておけば他のアプリや設定ファイルで同じ事象が発生してもピンとくるかと思います。

2012-03-12 [技術]

関連記事: