创建【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」のみの例が多いです。
ここでは全てを設定していますが、利用して不都合があれば変更します。

广告
将在 10 秒后关闭
bannerAds