CygwinはかつてSeaMonkey 1.0/1.1の日本語化版の作成を行う際、大変重宝したのですが、ちょっと急用でローカルなWebサーバーをたてる必要があったので、せっかくだし、Cygwinに追加してみることにしました。
今回、あえてLinuxのゲストを別に作って、Apacheを動かすなんてことをしなかったことには理由があります。
そもそもApacheをWindowsで使うなら、Windows版のものもありますし、Windowsを使っているならIISを動かすのもありですし、仮想環境を作って動かすのもありなのですが、現在計画停電の影響もあって、そういった時用に稼働していたML110 G5上のKVM環境はシャットダウンしています(電気代節約のため)。
それに、ちょっと使いたいだけだし、目の前のマシンでCygwinが動いているんだからこれを使えばいいのでは?...ということで、CygwinにApacheを追加して起動しようと思ったわけです。
■まずはApacheの追加
では早速導入してみます。
導入方法はきわめて簡単。Cygwinのsetup.exeで、apache2パッケージをインストールします。
ついでにすでにインストールしているパッケージのアップデートもしておくといいでしょう。
■cygserver-configを実行
CygwinはCygserver経由でサービスを実行するため、まずCygserverの設定を行います。
1)Cygwin.batにおまじないを書いておきます
set CYGWIN=server
2)以下のようにメッセージが出たら、yesと入力します。
$ cygserver-config
:
Do you want to install cygserver as service?
(Say "no" if it's already installed as service) (yes/no) yes
:
:
It is advisable to add this setting to the Windows system environment.Basic Cygserver configuration finished. Have fun!
これでWindowsのサービスに「CYGWIN cygserver」が追加されます。
4)Cygserverを起動しておきます。
$ net start cygserver
httpd.confのUser/Groupを以下のように修正します。
$ vi /etc/apache2/httpd.conf
:
:
User Guest
Group Guests
■Apacheの起動
Apacheを起動します。
Cygserverが起動していれば、以下のコマンドでApacheが起動するはずです。
/usr/sbin/apachectl2 start
起動しない場合は以下を確認
- 80ポートが他のアプリで利用されていないか確認する
- ファイアウォールの影響を受けていないか確認
Cygwinを起動したときに何となくApacheも起動させたいということで、以下のように書いておきました。
自動起動するには「CygwinのApacheをサービスに追加する」という方法があるのですが、別にちょっと使いたかっただけですのでこの方法(原始的なやり方)で。
$ vi ~/.bash_profile
:
:
#apache2 start settings
/usr/sbin/apachectl2 start
欠点は、Cygwinの端末を開く度に「/usr/sbin/apachectl2 start」が呼ばれるため、「httpd (pid xxxx) already running」と表示されるところ。
正直、実害はない?
■ブラウザで確認
正しくApacheが起動すれば以下のようにブラウザに表示されます。