ここで提供されているソリューションのほとんどは、システム固有または構成固有のものであることがわかりました(特に、ほとんどのソリューションはMacOSではまったく機能しません)。また、Apacheの構成ファイルが最初にどこにあるかを知っているユーザーに依存しているものもあります。 。
だから私は少しチートして、Apache自身に何が何であるかを教えさせます。
単純なコマンドapachectl -S
は、実行中のApacheのインスタンスについて知っておくべきことを教えてくれ、その結果はかなり簡単に解析できます。ここに私のソリューションがあります。これは、いくつかのbash
スクリプトの先頭で使用して、いつでも必要なさまざまなものを決定します...
# Store the results so we don't have to keep calling apachetl...
astatus=`apachectl -S`
# Now grab whatever you want from the result...
HTTPD_ROOT_DIR=$(expr "`echo "$astatus" | grep ServerRoot`" : ".*\"\(.*\)\".*")
HTTPD_DOC_DIR=$(expr "`echo "$astatus" | grep \"Main DocumentRoot\" `" : ".*\"\(.*\)\".*")
HTTPD_USER=$(expr "`echo "$astatus" | grep \"User:.*name=\" `" : ".*\"\(.*\)\".*")
HTTPD_GROUP=$(expr "`echo "$astatus" | grep \"Group:.*name=\" `" : ".*\"\(.*\)\".*")
これらの値は、次のように使用できます。
echo $HTTPD_ROOT_DIR // /etc/httpd
echo $HTTPD_DOC_DIR // /var/www
echo $HTTPD_USER // www-data
echo $HTTPD_GROUP // www-data