여기에 제공된 대부분의 솔루션은 시스템 또는 구성에 따라 다르며 (특히 대부분의 솔루션은 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