我已经看到有关该主题的所有其他问题,但没有一个答案有效。
情况:1 IP 上的 VPS,debian wheezy 7 与 apache2 一起运行。
即使是简单的虚拟主机也无法工作,如在 sites-enabled "www.domain.net" 中命名的:
<VirtualHost *:80> ServerName domain.net ServerAlias www.domain.net DocumentRoot /var/www/domain </VirtualHost>
apache2ctl -S 的输出:
VirtualHost configuration:
xx.xx.xxx.xxx:443 is a NameVirtualHost
default server xx.domain1.net (/etc/apache2/conf.d/owncloud5-ssl.conf:1)
port 443 namevhost xx.domain1.net (/etc/apache2/conf.d/owncloud5-ssl.conf:1)
xx.xx.xxx.xxx:80 oc.domain1.net (/etc/apache2/sites-enabled/oc.domain.net:8)
wildcard NameVirtualHosts and _default_ servers:
*:80 is a NameVirtualHost
default server domain1.net (/etc/apache2/sites-enabled/000-default:8)
port 80 namevhost domain1.net (/etc/apache2/sites-enabled/000-default:8)
port 80 namevhost mail.domain2.net (/etc/apache2/sites-enabled/mail.domain2.net:8)
port 80 namevhost domain2.net (/etc/apache2/sites-enabled/www.domain2.net:1)
Syntax OK
/var/www 中的 index.html 仍用作默认虚拟主机 (domain1)。它确实应该是捕获所有虚拟主机。但 apache2 不会获取 domain2 和两个域的子域。所有域在 DNS 设置中都有一个 A 名称,都指向相同的公共 IP。所有解析到此 IP 和默认虚拟主机。
答案1
如果我记得这被称为虚拟主机重叠,当我使用基于名称的虚拟主机时,我解决了创建一个简单的默认虚拟主机的问题,如下所示
<VirtualHost _default_:*>
DocumentRoot /www/default
</VirtualHost>
欲了解更多信息,可以阅读 apache 官方文档http://httpd.apache.org/docs/2.2/vhosts/examples.html