それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

ApacheをCygwinでインストール


CAMP環境ということで、Apache2をcygwinで使うためにインストールしてみました。
(Cygwin x Apahce )

インストール

apt-cyg install apache2

インストールはsetup.exe 経由かapt-cyg経由で、あっという間に終わります。

起動しましょう

httpd2.exeを実行すれば起動します。

/usr/sbin/httpd2    

サーバーのドキュメント・ルートは

/srv/www/htdocs

になります。

簡単ですね!

と書こうとしたら、起動しない。

起動しない

散々調べまわった。 私の場合、次の原因で起動しなかったよ。

ポート80番が塞がってた。


最初はUACでElevatedUserにならなくちゃいけないのかと思ってたけど、どうもそうじゃないらしい。

起動確認

起動しない場合はポートを変えてみましょう。

/etc/apache2/httpd.conf はポート80を使うようになっています。まずは、それを変更してみましょう。
80のままだと動かないときは。127.0.0.167:80が使われてる可能性がある。


起動確認ができない場合の確認方法

http://www.cyberarchitect.net/blog/archives/992

Windows 7で80番ポートが使用されており、Apacheを起動できない場合は、ポートの選挙状況を確認しましょう。

ポートを使っているプロセス番号を見る。
C:\Users\takuya>netstat -aon | findstr 0.0:80
  TCP    0.0.0.0:80             0.0.0.0:0              LISTENING       3468
  TCP    0.0.0.0:8080           0.0.0.0:0              LISTENING       5704
プロセス番号から、該当プログラムを探す。
takuya@atom:~$ tasklist | grep 3468
Skype.exe                     3468 Console                    1     63,448 K

Skype.exeだった。WindowsでApacheが起動しないよくある例に引っかかった。油断してました。

80番をSkypeに取られていた。(Skypeにポート占拠されてる)

Skypeめ!


Skypeからポート80を取り返したら、無事起動した。
WEBを見ているとSkype以外にも80を占拠するプログラムが数多あるようでした。

サービスとしてインストール

無事起動したので、Apacheをサービスとしてインストールします。

UAC昇格したmintty から次のコマンドを実行
cygrunsrv -I apache2 -d "Cygwin Apache2" -p /usr/sbin/httpd2 -a -DFOREGROUND -e "CYGWIN=server"

Apache2とういう名前でCygwinサーバーをサービスとして登録しました。

Apacheサービスの起動

あとはサービスなので、簡単ですね。

cygrunsrv -S apache2

終了:サービス終了

cygrunsrv -E apache2

再起動

cygrunsrv -E apache2;cygrunsrv -S apache2

再起動はサービスとして終了&起動を連続して行うことで実現した。

サービスを削除

要らなくなったら消す。

cygrunsrv -R apache2

cygrunsrvの細かい使い方は

cygrunsrv の過去記事を参考にして下さい。


2013-02-18追記

もしかしたら cygserverを インストールしてないと動かないかもしれない。
cygrunsrv -S cygserver