![为什么我得到的是 Apache2 Ubuntu 默认页面而不是我自己的 index.html 页面?](https://linux22.com/image/869993/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E5%BE%97%E5%88%B0%E7%9A%84%E6%98%AF%20Apache2%20Ubuntu%20%E9%BB%98%E8%AE%A4%E9%A1%B5%E9%9D%A2%E8%80%8C%E4%B8%8D%E6%98%AF%E6%88%91%E8%87%AA%E5%B7%B1%E7%9A%84%20index.html%20%E9%A1%B5%E9%9D%A2%EF%BC%9F.png)
我有一台 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>
这彻底解决了我的问题。