[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
Windows版Apacheは、通常のインストーラの設定に従うと、デフォルトでサービスとして起動されるよう登録される。
今回は、異なる設定ファイルを読み込むApacheを別々にWindowsのサービスとして起動するよう登録することに挑戦し、目的を達した。
当初の目的はPHP4をLoadするApacheとPHP5をLoadするApacheを別々に立ち上げることであった。
今回は以下のように、"httpd4"と"httpd5"というサービス名でそれぞれ登録してみる。後述のように、最終的には両方とも80番ポートとし、排他的に動作するよう設定した。
サービス名 | 設定ファイル |
httpd4 | conf/httpd_php4.conf |
httpd5 | conf/httpd_php5.conf |
なお、当初目的がPHP4とPHP5の共存である為、上掲のconfはPHP4/5の差分、LoadModule周辺部分のみが含まれている。大半の共通部分は conf/httpd_common.conf として以下のように両confよりとりこませている。
Include conf/httpd_common.conf
まず、インストール時に入ったデフォルトのApacheサービスをWindowsのサービスより削除する。
> cd "C:\Program Files\Apache Group\Apache2\bin"
> apache -k uninstall
Removing the Apache service
The Apache service has been removed successfully.
次に、各設定ファイルが問題ないかチェックする。
> apache -f conf/httpd_php4.conf -t
Syntax OK
> apache -f conf/httpd_php5.conf -t
Syntax OK
サービスとして登録する。"-k install" と "-n サービス名" と "-f サーバー設定ファイル" を指定する。
> apache -k install -n "httpd4" -f conf/httpd_php4.conf
> apache -k install -n "httpd5" -f conf/httpd_php5.conf
ちなみに、サービスを削除するには以下のようになる。
> apache -k uninstall -n "httpd4"
> apache -k uninstall -n "httpd5"
サービスの起動・停止は、"-n"オプションと共に実行する。
> apache -k {start|stop|restart} -n "httpd{4|5}"
Apache Service Monitor を立ち上げると、二つのサービスが表示され、それぞれ起動・停止できるようになっている。
今回は最終的に両方とも80番で動かすようにしたため、排他的に起動・停止する。但し、デフォルトはhttpd4としたかったため、Windowsのサービス設定画面より、httpd4を「自動」とし、httpd5を「手動」とした。これによりマシン起動時はデフォルトでPHP4のApacheが起動し、PHP5で動かしたければ手動でhttpd5へ切り替えるようにした。
以下の手順で書き込みを行うことが出来る。
1:Webサービス実行用ユーザーを作成する。
2:共有フォルダに上記ユーザーの書き込み権限を与える。
3:WebサービスのWeb.Configへ以下の内容を追加する。
これで、ネットワークフォルダ越しにファイルを作成することが可能となる。
上記の方法では、Acrobat実行ユーザーまで変更できていないようなので、IIS側で上記の内容を設定しておく方法が良い。
以下に手順を記す。
1:Webサービス実行用ユーザーを作成する。
2:Acrobatが実行可能な権限を与える。
3:上記ユーザーをIIS_WPGグループに所属させる。(これによりIISを実行可能なユーザーとなる)
4:共有フォルダに上記ユーザーの書き込み権限を与える。
5:IISマネージャでアプリケーションプールを新規作成する。
6:作成したプールのプロパティを開き、[識別]タブを選択し[構成可能なユーザー]へ上記作成ユーザーを設定する。
7:Webサービスを提供するWebサイトのプロパティを開き[仮想ディレクトリ]タブの[アプリケーションプール]を上記で作成した
アプリケーションプールを指定する。
FireFox,Operaは同一ドメインではなくても送信される