2013-04-20 129 views
1

幾個月前,我在Mac OSX 10.6.8上安裝了Apache。 Apache自動安裝在/ usr/local/apache2。在打嗝後,我成功地讓Apache在8080端口上偵聽,並且我能夠讓Apache從/ usr/local/apache2/cgi-bin中執行cgi腳本。Apache:更改httpd.conf的路徑

我還沒有從那以後使用了Apache,當我使用最近解僱了阿帕奇:

/usr/local/apache2/bin$ sudo apachectl -k start 

,然後進入我的瀏覽器輸入以下網址:

http://localhost:8080 

阿帕奇不會提供index.html頁面或/ usr/local/apache2/htdocs中的任何其他頁面。但是,如果我用的網址:

http://localhost 

然後阿帕奇也成爲了所顯示,「它的工作原理」,「一個index.html」頁面。我檢查了我的httpd.conf文件位於/usr/local/apache2/conf/httpd.conf和Apache設置爲監聽端口8080:

Listen 8080 

接下來,我改變了文件在/ usr /本地/的Apache2/htdocs中/ index.html的顯示,「世界你好」,但是Apache仍然擔任了一個頁面,說:「它的工作原理」當我用網址:

http://localhost 

我再次檢查了我的httpd.conf文件此行:

DocumentRoot "/usr/local/apache2/htdocs" 

所以我得出結論說我的apache安裝不使用位於/usr/local/apache2/conf/httpd.conf的httpd.conf文件。我做了一些與谷歌的搜索,我發現這個命令:

/usr/local/apache2/bin$ apachectl -V 

其產生的輸出:

Server version: Apache/2.2.22 (Unix) 
Server built: Jul 12 2012 15:09:37 
Server's Module Magic Number: 20051115:30 
Server loaded: APR 1.3.8, APR-Util 1.3.9 
Compiled using: APR 1.3.8, APR-Util 1.3.9 
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" 

httpd.conf中我安裝Apache現在使用位於/私人的/ etc /的Apache2/httpd.conf文件,它包含這些行:

ServerRoot "/usr" 

Listen 80 

DocumentRoot "/Library/WebServer/Documents" 

我的問題是:在地獄裏怎麼會出現這些變化? apache文檔說httpd.conf的路徑是在編譯時設置的。我認爲,在/ usr /本地/ Apache2的/斌/的apachectl可能被符號鏈接到系統apache的可能性,但這種輸出:

/usr/local/apache2/bin$ ls -al 
total 2104 
drwxr-xr-x 20 root admin  680 Feb 19 12:36 . 
drwxr-xr-x 15 root admin  510 Feb 19 12:36 .. 
-rwxr-xr-x 1 root admin 57200 Feb 19 12:36 ab 
-rwxr-xr-x 1 7stud staff 3410 Feb 19 12:32 apachectl 

並不表示是這種情況。

+0

在命令提示符處嘗試'which apachectl'。 – 2013-04-20 10:05:29

+0

〜$ which apachectl => /usr/sbin/apachectl。那麼路徑問題呢? – 7stud 2013-04-20 10:08:30

+1

然後你運行系統apachectl,而不是'/ usr/local/apache2/bin'中的你自己的系統。 – 2013-04-20 10:09:08

回答

3

which顯示您正在運行系統apachectl而不是您自定義的系統。嘗試

sudo /usr/local/apache2/bin/apachectl -k start 

...運行你的並啓動你自己的自定義apache。

+0

感謝您參與Apache配置問題。你是個勇敢的人。 ++ – 7stud 2013-04-22 04:22:11