「 http://localhost/index.html」で「Hello World!!」を見るくらいを目標とします。
参考にしたページ
追加インストールしたパッケージ
- httpd
httpdをサービスに登録する
スクリプト
#!/usr/bin/bash
NAME="apache2"
DESC="Cygwin Apache2"
readonly DAEMON_PATH="--path /usr/sbin/httpd"
readonly DAEMON_ARGS="--args -DFOREGROUND"
readonly DAEMON_EVAR="--env CYGWIN=server"
readonly DAEMON_EVAL="ntsec binmode server"
readonly DAEMON_WDIR="--chdir /var/empty"
########## FUNCTION
echodo()
{
echo "########## CMD[$@]"
"$@"
return $?
}
########## MAIN
# stop and remove
SERVICE_NAME=`cygrunsrv --list | egrep -i ${NAME}`
if [ -z "${SERVICE_NAME}" ]
then
true
else
NAME=$SERVICE_NAME
echodo cygrunsrv --list --verbose
echodo cygrunsrv --stop $NAME
echodo cygrunsrv --query $NAME --verbose
echodo cygrunsrv --remove $NAME
fi
# install and start
echodo cygrunsrv --list --verbose
echodo cygrunsrv --install $NAME --desc "$DESC" \
$DAEMON_WDIR $DAEMON_PATH $DAEMON_ARGS --env CYGWIN="$DAEMON_EVAL"
echodo cygrunsrv --query $NAME --verbose
while true
do
echodo sleep 2
if echodo cygrunsrv --start $NAME
then
echodo echo $?
echodo cygrunsrv --list --verbose
break
fi
done
サービス起動後の状況
Service : apache2
Description : Cygwin Apache2
Current State : Running
Controls Accepted : Stop
Command : /usr/sbin/httpd -DFOREGROUND
Working Dir : /var/empty
stdin path : /dev/null
stdout path : /var/log/apache2.log
stderr path : /var/log/apache2.log
Environment : CYGWIN="ntsec binmode server"
Process Type : Own Process
Startup : Automatic
Account : LocalSystem
スクリプトの補足
- cron環境を作る時に使ったスクリプトのパクリです。
- 「--env」部分の共通化が可読性を下げるのでパクリで済ませています。
- CYGWIN環境変数について
- 参考にした多くのページでは「server」のみの例が多いです。
- ここでは全てを設定していますが、利用して不都合があれば変更します。