ytooyamaのブログ

サーバ構築とか、仕事で発見したこととか、趣味のこととかを書いています。

CygwinでApacheを導入して動かす

CygwinはかつてSeaMonkey 1.0/1.1の日本語化版の作成を行う際、大変重宝したのですが、ちょっと急用でローカルなWebサーバーをたてる必要があったので、せっかくだし、Cygwinに追加してみることにしました。


今回、あえてLinuxのゲストを別に作って、Apacheを動かすなんてことをしなかったことには理由があります。

そもそもApacheWindowsで使うなら、Windows版のものもありますし、Windowsを使っているならIISを動かすのもありですし、仮想環境を作って動かすのもありなのですが、現在計画停電の影響もあって、そういった時用に稼働していたML110 G5上のKVM環境はシャットダウンしています(電気代節約のため)。

それに、ちょっと使いたいだけだし、目の前のマシンでCygwinが動いているんだからこれを使えばいいのでは?...ということで、CygwinApacheを追加して起動しようと思ったわけです。


■まずは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


Apacheの設定(httpd.conf)

httpd.confのUser/Groupを以下のように修正します。

$ vi /etc/apache2/httpd.conf
:
:
User Guest
Group Guests


Apacheの起動

Apacheを起動します。
Cygserverが起動していれば、以下のコマンドでApacheが起動するはずです。

/usr/sbin/apachectl2 start

起動しない場合は以下を確認

  • 80ポートが他のアプリで利用されていないか確認する
  • ファイアウォールの影響を受けていないか確認


Apache自動起動

Cygwinを起動したときに何となくApacheも起動させたいということで、以下のように書いておきました。
自動起動するには「CygwinApacheをサービスに追加する」という方法があるのですが、別にちょっと使いたかっただけですのでこの方法(原始的なやり方)で。

$ vi ~/.bash_profile
:
:
#apache2 start settings
/usr/sbin/apachectl2 start

欠点は、Cygwinの端末を開く度に「/usr/sbin/apachectl2 start」が呼ばれるため、「httpd (pid xxxx) already running」と表示されるところ。
正直、実害はない?


■ブラウザで確認

正しくApacheが起動すれば以下のようにブラウザに表示されます。