“/usr/sbin/apachectl2: line 78: 2340 Bad system call $HTTPD -k $ARGV”
apache2 does not start in cygwin | Apache | Users
Cygwin で Apache を起動しようとした時にはまったのでメモしておこう。同じところで止まった人もけっこういそうだし。
簡単に手順だけ説明すると、リンク先にもあるように、こんな感じ。
“Then you just run:
cygserver-config
When it’s finished, start the service :
net start cygserver
Then you should be able to start Apache with:
/usr/sbin/apachectl2 start “
apache2 does not start in cygwin | Apache | Users
ただし Cygwin のパッケージ cygrunsrv がないと、この手順ではできない。
何が起こっているのかと言うと、Apache の起動には IPC という仕組みが必要なのだが、単に Cygwin をインストールして Cygwin Bash Shell を起動しただけでは IPC の機能は得られない。IPC を利用するためには cygserver というサービスが必要なのだ。
この cygserver を起動する設定を勝手にしてくれるのが cygserver-config コマンド。って言っても、デフォルトの設定ファイルを作って、Windows のサービスとして起動してくれるだけ。サービスの登録には cygrunsrv が必要になる。
ただ、cygserver サービスは /usr/sbin/cygserver.exe を叩けば起動する。引数はここに説明がある。
Cygserver
これを起動すれば ipcs コマンドで IPC の状況を確認することができるようになる。Apache も起動する。
たまに Apache を起動するだけなら、Windows のサービスとして登録しなくてもいいかもね。その都度コマンドラインから起動するとか。
あと、PostgreSQL でも IPC は必要なはずなので、覚えておこう。