Apache忽略文档根目录

6

I have the following VirtualHost file:

 <VirtualHost *:80>

        ServerName www.domain.com
        ServerAlias domain.com

        ServerAdmin michael@xxx.com
        DocumentRoot /var/www/html/xxx/public

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined


</VirtualHost>

Apache似乎忽略了我的Document Root,而是显示了一个位于

/var/www/html

目录。我需要更改什么才能使其运作?

2个回答

5
花了30分钟来弄明白为什么一些内容被忽略后,我发现如果你的sites-enabled配置文件没有以.conf结尾,apache2.4会忽略它们,例如:

错误的:

ls /etc/apache2/sites-enabled/
001-owncloud  002-owncloud-ssl  003-ram

正确写法:

ls /etc/apache2/sites-enabled/
001-owncloud.conf  002-owncloud-ssl.conf  003-ram.conf

我简直不敢相信这个没有得到更多的点赞。谢谢你。 - jcomeau_ictx

4
你确定这是唯一一个在80端口上的虚拟主机吗?我怀疑其他地方可能会覆盖它。
此外,目录中没有指令,因此在让其工作时可能会出现权限问题。
通常我会在apache.conf之类的文件中发现其他虚拟主机。
还有你知道网站文件有两个位置吧?sites-available和sites-enabled。如果不在sites-enabled中,它将无法使用。使用“sudo a2ensite siteName”在sites-enabled中创建一个符号链接到文件。
此外,如果你使用的是Apache 2.4,文件需要以“.conf”结尾才能被捕获到。从2.2到2.4,有些东西发生了变化。

谢谢你的回答+1!文件以.conf结尾,并已通过a2ensite符号链接到sites-enabled。这是一个相当新的安装服务器,因此我不认为有其他虚拟主机设置(我没有这样做,而且我是这个服务器上唯一的人)。你还能想到其他什么吗? - baao
指令中的目录点对我来说似乎很有前途。有什么设置它们的方法吗? - baao
但是你可能想要在你的配置文件中使用grep命令来查找.80,这样就能确定是否有其他虚拟主机被指定了。grep -R 80 /etc/apache2/* - Dan Walmsley
1
目录指令已经解决了问题,现在它可以工作了。非常感谢! - baao
请注意,在查找其他目录指令时,还应检查apache.conf等中的目录指令是否覆盖了它们。 - Markus Barthlen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接