我的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)。有什么理由吗?请帮忙
答案 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
禁用它(用于测试)。