Apache-2.2
如何判斷 Apache 使用的是哪個配置文件?
我正在嘗試在 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建議是下一步。