为什么我得到的是 Apache2 Ubuntu 默认页面而不是我自己的 index.html 页面?

为什么我得到的是 Apache2 Ubuntu 默认页面而不是我自己的 index.html 页面?

我有一台 Ubuntu 14.10 电脑,用于当地的网站测试,它不为互联网提供服务。我在其中设置了七个网站。但是,当我访问其中两个网站时,我得到的Apache2 Ubuntu Default Page不是自己的索引页。

据我所知,我使用完全相同的过程设置了所有七个,所以我不知道这两个缺少什么。此外,在我的 Apache 日志目录中,我有两个日志文件,error分别access用于两个行为不端的站点,但它们都是空的。当我重新启动服务时apache2,没有任何错误。我多次回溯了我的步骤,我看不出正常工作的站点和非正常工作的站点之间有什么区别。

我有哪些选项可以诊断此问题?我能以某种方式强制显示更详细的错误日志吗?还有其他日志可以参考吗?

.conf以下是某个故障站点的文件示例:

<VirtualHost *:80>
   ServerName www.local_example.com
   ServerAlias local_example.com
   ServerAdmin [email protected]

   DocumentRoot /var/www/Websites/example.com
   <Directory /var/www/Websites/example.com/>
       Options Indexes FollowSymLinks MultiViews
       # pcw AllowOverride None
       AllowOverride All
       Order allow,deny
       allow from all
       # This directive allows us to have apache2's default start page
       # in /apache2-default/, but still have / go to the right place
       # Commented out for Ubuntu
       #RedirectMatch ^/$ /apache2-default/
   </Directory>

   ErrorLog /home/example/Apache_Logs/local_example.com_error.log

   # Possible values include: debug, info, notice, warn, error, crit,
   # alert, emerg.
   LogLevel warn

   CustomLog /home/example/Apache_Logs/local_example.com_access.log combined
   ServerSignature On

</VirtualHost>

答案1

对我来说,@Dan 的一个建议解决了这个问题。

sudo a2dissite 000-default.conf
service apache2 reload

显然,默认站点配置正在覆盖我的 vhost 配置。

答案2

尝试以下操作

启用详细日志

sudo nano /etc/apache2/apache2.conf

找到 LogLevel 变量,并将其从默认的警告更新为信息或调试。调试将产生最大量的输出。

# LogLevel: Control the number of messages logged to the error_log.
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
# 
LogLevel debug

重启 Apache

sudo service apache2 restart

Apache 包含一个很好的语法检查工具

apache2ctl -t

检查虚拟主机定义

apache2ctl -S

答案3

安装后 index.html 具有更高的优先级,这就是为什么你仍然看到默认的 Ubuntu 页面,检查此文件夹 var/www/html/ 重命名或删除此页面就这么简单

答案4

我也遇到过同样的问题。

我甚至删除了/var/www/html,并且sudo a2dissite 000-default删除了/etc/apache2/sites-available/000-default.conf,但即使这样,问题仍然存在。

最后我发现这index.html是由于 C++ 代码中的一些硬编码而持久的。

内置默认值DirectoryIndex如下/mods-available/dir.conf

DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm

我的项目index.html不仅仅是index.php

DirectoryIndex解决方案是向我的 vhost.conf 中添加一个,/etc/apache2/sites-available/如下所示:

<Directory "/var/www/mysite">
   RewriteEngine On
   AllowOverride All
   Options Indexes FollowSymLinks MultiViews
   Require all granted
        
   #extra config to disable default index.html
   DirectoryIndex disabled
   DirectoryIndex index.php
</Directory>

这彻底解决了我的问题。

相关内容