2013-05-09 295 views
1

我的Apache Web服務器的安裝路徑爲/usr/local/apache2Web瀏覽器不顯示htdocs目錄中的index.html - Apache

我使用apachectl start命令來啓動服務器,當我在Web瀏覽器中鍵入localhost它會顯示一個Apache 2的測試頁在/usr/local/apache2/htdocs搭載的CentOS而不是index.html。有沒有人知道這個原因?

在我的系統中還有兩個conf.d文件。一個在/etc/httpd/conf,另一個在/usr/local/apache2/conf(我安裝了Apache)。這有什麼理由?請幫忙

+0

你是否從源碼安裝了apache2? – slackmart 2013-05-09 05:21:27

+0

@smart根據此安裝 - http://httpd.apache.org/docs/2.2/install.html。 – 2013-05-09 05:23:42

+0

有沒有特別的原因呢?我只是問,因爲centos存儲庫提供編譯軟件包(rpm)準備好安裝 – slackmart 2013-05-09 05:29:52

回答

4

首先,我猜你已經從源代碼構建了apache - 是否有這樣做的具體原因?如果您使用標準分發包,或者如果您需要更高版本,則通常會發現系統更容易管理。

如果您沒有使用本地構建的Apache的特定需求,我建議刪除它,然後使用正常的CentOS存儲庫安裝Apache。

下一個(或第一,如果你與當地建阿帕奇住),運行:httpd -V

例如,我的一個系統的回報:

[[email protected] ~]# httpd -V 
Server version: Apache/2.2.3 
Server built: Jun 6 2012 10:00:36 
Server's Module Magic Number: 20051115:3 
Server loaded: APR 1.2.7, APR-Util 1.2.7 
Compiled using: APR 1.2.7, APR-Util 1.2.7 
Architecture: 32-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_SYSVSEM_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="/etc/httpd" 
-D SUEXEC_BIN="/usr/sbin/suexec" 
-D DEFAULT_PIDLOG="run/httpd.pid" 
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status" 
-D DEFAULT_LOCKFILE="logs/accept.lock" 
-D DEFAULT_ERRORLOG="logs/error_log" 
-D AP_TYPES_CONFIG_FILE="conf/mime.types" 
-D SERVER_CONFIG_FILE="conf/httpd.conf" 

輸出將告訴你在哪裏它的真正的配置文件,在這種情況下是/etc/httpd/conf/httpd.conf - 這樣你就會知道哪個配置是實際使用的配置。

一旦您知道使用哪些配置文件,您可以檢查它們以查看文檔根目錄的位置 - 它可能位於/var/www/html/而不是/usr/local/apache2/htdocs或幾乎任何位置。

當你知道在哪裏文檔根目錄,然後檢查並確保這些文件和目錄是由阿帕奇可讀(或任何用戶Apache是​​作爲運行 - 從ps aux | grep httpd第一列會告訴你)

下一頁檢查日誌文件,通常/var/log/httpd/error_log並在/var/log/messages系統日誌和/var/log/secure

最後,如果你運行的是最新的CentOS其啓用SELinux的,並且你已經建立阿帕奇自己,你幾乎肯定會在痛苦的世界。您可以嘗試getenforce以查看SELinux是否處於活動狀態,並setenforce 0將其禁用(用於測試)。

+0

感謝您的答覆。是的,我從源代碼安裝了Apache,默認情況下它已經安裝在我的系統中。因此我做了一個'yum remove httpd'並使用了我從源代碼安裝的版本。謝謝您的幫助! – 2013-05-09 05:55:01

+0

從源代碼安裝Apache並沒有什麼特別的原因只是爲了學習目的。 – 2013-05-09 05:59:11

+0

不用擔心@chamarakera,多年來我學到的一件事就是,嘗試按照您使用的發行版的方式來做事情會更容易。這意味着要麼使用他們的軟件包,要麼花時間學習如何自己構建軟件包。這對Apache來說並不是太糟糕,但它意味着如果你需要PHP,你也必須從源代碼構建它,AFAIK。 – agittins 2013-05-09 06:14:26