Apache虚拟主机指向错误的DocumentRoot


9

我在带有虚拟主机的运行Ubuntu 12.04.3的Digital Ocean上运行VPS。我可以在这里按照本教程进行设置:https : //www.digitalocean.com/community/articles/how-to-set-up-apache-virtual-hosts-on-ubuntu-12-04-lts

但是,过了几天,我导航到我的主域(noelforte.com)来检查一切是否运行顺利,但是没有看到我临时设置的登录页面,而是得到了目录列表。

奇怪的是,我使用VHosts配置的子域仍然指向正确的目录,但是我的主域恢复为指向默认文档根目录/var/www

删除其中的配置文件/etc/apache2/sites-available并再次进行所有设置都会产生相同的结果:任何子域都将指向正确的位置,但是根TLD仍然指向/var/www

可能导致这种情况的原因是什么,为什么它最初可以正常工作?

Answers:


12

解决了!运行sudo apache2ctl -S返回以下内容:

VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:80                   is a NameVirtualHost
         default server noelforte.com (/etc/apache2/sites-enabled/000-default:1)
         port 80 namevhost noelforte.com (/etc/apache2/sites-enabled/000-default:1)
         port 80 namevhost media.noelforte.com (/etc/apache2/sites-enabled/media.noelforte.com:1)

我决定禁用所有站点(包括默认站点),然后仅激活我需要的站点。那解决了我的问题。

如果有人可以按以下说明解释为什么noelforte.com运行default-000

port 80 namevhost noelforte.com (/etc/apache2/sites-enabled/000-default:1)

这将有助于阐明可能配置错误的内容。谢谢!


我遇到了同样的问题,对我来说是因为ServerName设置为与000默认文件中的域相同。
沸腾的仙境2014年

1

在其中创建000-default文件,/etc/apache2/sites-available或者如果已经存在,则对其进行编辑。如果没有为您要查找的站点定义虚拟主机,Web服务器将在此指向。

确保检查中也存在该文件/etc/apache2/sites-enabled。如果没有:ln -s /etc/apache2 sites-available/000-default /etc/apache2/sites-enabled/


default我的/etc/apache2/sites-available目录中已经有一个文件。我还具有用于noelforte.com设置和启用的虚拟主机,但是,它没有指向vhost文件中定义的文档根目录。为什么?
Noel Forte

0

您需要编辑/etc/apache2/sites-enabled/yourdomain.conf并将“ ServerName”添加到“ yourdomain”。例如:

<VirtualHost *:80>
    ServerName MyDomain
    DocumentRoot /var/www/myDomainFolder
...
</VirtualHost>
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.