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


8

我有一台用于本地网站测试的Ubuntu 14.10计算机,它无法连接到互联网。在上面,我建立了七个网站。但是,当我访问七个中的两个时,将得到Apache2 Ubuntu Default Page而不是自己的索引页。

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

我有什么选择可以诊断此问题?我可以以某种方式强制使用更详细的错误日志吗?我可以参考其他地方的日志吗?

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

<VirtualHost *:80>
   ServerName www.local_example.com
   ServerAlias local_example.com
   ServerAdmin address@example.com

   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>

2
您是如何创建虚拟主机的?您是否通过添加文件来创建它们/etc/apache2/sites-available?如果是这样,您是否启用了sudo a2ensite <your_site_name>?默认的Apache错误日志文件中是否包含任何内容?在虚拟主机文件中是否配置了ServerAlias或ServerName?如果您禁用了默认站点sudo a2dissite 000-default(您可以使用来重新启用它sudo a2ensite 000-default),它可以工作吗?另外,可能是您忘记了重新启动apache?
2015年

@丹,谢谢你的回应。我通过将网站添加到中创建了网站sites-available。默认错误日志中没有任何内容。我已经ServerAlias在主机文件中定义了。我禁用了该000-default网站,但没有任何改变。我重新启动并重新加载了很多次。
提问者

当您禁用默认站点并重新启动apache时,它仍显示默认的index.html页面,还是显示来自其他虚拟主机的页面?您可以发布行为不当的虚拟主机文件之一的内容吗?这可能使事情更容易为我们提供帮助。
2015年

@丹,谢谢你的回应。正如我提到的那样,当我进行更改时,您建议什么都没有改变,这意味着它显示的是完全相同的默认索引页。我已经在问题中添加了.conf文件。
提问者

Answers:


8

尝试以下

启用详细日志

sudo nano /etc/apache2/apache2.conf

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

# 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

谢谢你的建议。我将日志级别设置为调试,但在错误日志文件中我仍然绝对没有任何条目。现在,每次打开网站时都会显示访问日志,但没有其他显示。
提问者

6

对我来说,@ Dan的建议之一解决了它。

sudo a2dissite 000-default.conf
service apache2 reload

显然,默认站点配置覆盖了我的虚拟主机配置。


在其他服务器中,它的行为有所不同,并且读取了index.php而不是index.html。非常阴险的情况
Margus Pala '18

2

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


1

原来问题是权限。

将网站存储在/var/wwwsymlink 外部并通过symlink连接的目录中时,源目录及其父目录必须具有的权限755

由于某些未知原因,两个行为异常的网站具有不同的权限,并且chmod -R 755在网站目录及其父目录上运行可以解决该问题。


您不应该chmod -R 755在目录上运行,因为其中的所有文件都将被标记为“可执行” ...
Alexis Wilke,2016年

@AlexisWilke,设置正确权限的更好命令是什么?
提问者

没有一个简单的方法可以更改所有目录的权限,而不是标准权限...您可以使用find。像这样的东西:find top-dir-name -type d -exec chmod 755 {} \;
亚历克西斯·威尔克
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.