创建【Cygwin】环境下的Apache配置
目标是在「http://localhost/index.html」上看到「Hello World!!」。
参考网页
- https://qiita.com/n-yamanaka/items/d9159e07b668d72649a1
追加安装的软件包
- 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」のみの例が多いです。
ここでは全てを設定していますが、利用して不都合があれば変更します。