Web浏览器不在htdocs目录中显示index.html - Apache

时间:2013-05-09 05:07:24

标签: linux apache apache2 webserver centos

我的Apache Web服务器的安装路径为/usr/local/apache2

我使用apachectl start命令启动服务器,当我在Web浏览器中键入localhost时,它会显示由CentOS驱动的 Apache 2测试页而不是{{在index.html中的1}}。有人知道这个的原因吗?

我的系统中还有两个/usr/local/apache2/htdocs个文件。一个在conf.d,另一个在/etc/httpd/conf(我安装了Apache)。有什么理由吗?请帮忙

1 个答案:

答案 0 :(得分:4)

首先,我猜你已经从源代码构建了apache - 是否有特定的理由这样做?如果您使用标准分发包,或者如果您需要更高版本,请使用其他repos中的新包,我通常会发现系统更易于管理。

如果您没有使用本地构建的apache的特定需求,我建议删除它,然后使用正常的CentOS存储库安装apache。

接下来(或者首先,如果你要使用本地构建的apache),请运行:httpd -V

例如,我的一个系统返回:

[me@here ~]# 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可以读取文件和目录(或者正在运行的任何用户apache - ps aux | grep httpd的第一列将告诉您)

接下来检查日志文件,通常是/var/log/httpd/error_log以及/var/log/messages/var/log/secure

中的系统日志

最后,如果您正在运行最近启用了SELinux的CentOS,并且您自己构建了apache,那么您几乎肯定会陷入痛苦的世界。您可以尝试getenforce查看SELinux是否处于活动状态,setenforce 0禁用它(用于测试)。