Apache2をサービスに登録する
やっとサービスとしてApache2を登録できたので、忘れないうちにメモしとく。さあ、久しぶりのQWERTY配列だから気合いれて書くぞ。(普段はごぞんじ、dvorak配列。)
環境
- Apache2はインストール済み & 設定済み。インストール手順はid:mzp:20060325:1143292784を参照
- Windows XP Home Edition SP2
ユーザーの登録
サービスは、サービス専用のユーザーで動くので、まずは新しいユーザーを登録する。
$ net user httpd パスワード /add ? /fullname:httpd /comment:'httpd service account' ? /homedir:$(cygpath -w /home/httpd) $ mkpasswd -l -u httpd >> /etc/passwd
ユーザーを登録しなくても、SYSTEMというユーザーで動かせるらしいんだけど、なぜかうまく動かなかったので、httpdというアカウントを作ることにした。
権限の付加
httpdアカウントに、サービスを実行できる権限を付加してやる。
$ editrights -u httpd -a SeServiceLogonRight
Professional EditionだとGUIを使って設定できるらしい。
サービスのインストール/開始
Cygrunsrvコマンドを使うので、Setup.exeからインストールしてやる。Adminカテゴリに収録されている。
$ cygrunsrv --install apache2 ? -d "CYGWIN apache2" ? -p /usr/sbin/httpd2 ? -a -DFOREGROUND --user httpd Enter password of user `xxx?httpd':パスワード Reenter, please:もういっかい
サービスを開始するには、コントロールパネルの「サービス」から開始するか、
$ cygrunsrv -S apache2
うまくいかなかった。
$ cygrunsrv --install apache2 ? -d "CYGWIN apache2" ? -p /usr/sbin/httpd2 ? -a -DFOREGROUND --user 普段使っているユーザー名
で動く。たぶんパーミッション周りの問題。
あ、普段使っているアカウントにもSeSeiviceLogonを付加せんとあかんよ。
その他
サービスの情報確認
$ cygrunsrv -Q apache2
サービスの削除
$ cygrunsrv -R apache2