Apache-2.2

如何判斷 Apache 使用的是哪個配置文件?

  • September 29, 2018

我正在嘗試在 Mac OS X 上設置虛擬主機。我一直在修改 httpd.conf 並重新啟動伺服器,但沒有任何運氣讓它工作。此外,我注意到它不是在 httpd.conf (Libraries/WebServer/Documents) 中提到的 DocumentRoot 中提供文件,而是在不同的目錄 (/usr/local/apache2/htdocs) 中提供文件。我在 httpd.conf 的任何地方都沒有看到這個文件夾。此外,PHP 可以工作,但“LoadModule php5_module”行被註釋掉了。這讓我覺得它正在使用另一個 .conf 文件。如何確定實際載入了哪個配置?

更新:我剛剛刪除了重啟後 httpd.conf 和 apache 的行為相同,所以它肯定沒有使用它!

對於任何 *nix 應用程序,最簡單的方法是查詢二進製文件本身。在 httpd 的情況下,我想這個過程會是這樣的:

$ whereis httpd
/usr/sbin/httpd
$ /usr/sbin/httpd -V
Server version: Apache/2.2.11 (Unix)
Server built:   Jun 17 2009 14:55:13
Server's Module Magic Number: 20051115:21
Server loaded:  APR 1.2.7, APR-Util 1.2.7
Compiled using: APR 1.2.7, APR-Util 1.2.7
Architecture:   64-bit
Server MPM:     Prefork
 threaded:     no
   forked:     yes (variable process count)
Server compiled with....
-D APACHE_MPM_DIR="server/mpm/prefork"
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-D APR_USE_FLOCK_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT=128
-D HTTPD_ROOT="/usr"
-D SUEXEC_BIN="/usr/bin/suexec"
-D DEFAULT_PIDLOG="/private/var/run/httpd.pid"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_LOCKFILE="/private/var/run/accept.lock"
-D DEFAULT_ERRORLOG="logs/error_log"
-D AP_TYPES_CONFIG_FILE="/private/etc/apache2/mime.types"
-D SERVER_CONFIG_FILE="/private/etc/apache2/httpd.conf"

正如你所看到的 - 我的 OS X 說二進製文件,如果沒有其他指示,將使用配置文件:/private/etc/apache2/httpd.conf

如果這沒有幫助,也許克里斯托弗的find建議是下一步。

引用自:https://serverfault.com/questions/155113