NameVirtualHost *:80 没有 VirtualHosts
Posted
技术标签:
【中文标题】NameVirtualHost *:80 没有 VirtualHosts【英文标题】:NameVirtualHost *:80 has no VirtualHosts 【发布时间】:2011-11-02 04:47:28 【问题描述】:我有两个域名、两个 ssl 证书和两个 IP 地址。我正在尝试为他们配置我的 apache 虚拟主机文件。
首先,我注释掉端口 80 和 443 的所有“NameVirtualHost”和“Listen”实例。然后我对我的虚拟主机文件执行以下操作。
域 1 的虚拟主机文件:
NameVirtualHost 1.1.1.1:80
Listen 1.1.1.1:80
Listen 1.1.1.1:443
<VirtualHost 1.1.1.1:80>
ServerName domain1.com
...
</VirtualHost>
<VirtualHost 1.1.1.1:443>
...
</VirtualHost>
域 2 的虚拟主机文件:
NameVirtualHost 2.2.2.2:80
Listen 2.2.2.2:80
Listen 2.2.2.2:443
<VirtualHost 2.2.2.2:80>
ServerName domain2.com
...
</VirtualHost>
<VirtualHost 2.2.2.2:443>
...
</VirtualHost>
【问题讨论】:
NameVirtualHost 已被弃用,不再需要。 【参考方案1】:在我拥有 Ubuntu 服务器的 2 个月里,我忽略了同样的错误。我发现这篇文章很好地解决了这个错误。谢谢Michael!。 和Jay 一样,我在 /etc/apache2/ports.conf 找到了罪魁祸首。我简单地尝试了这个:
# NameVirtualHost *:80我只注释掉了那条线,没有其他变化,没有更多
“NameVirtualHost *:80 没有 VirtualHosts”
【讨论】:
【参考方案2】:在您的配置中,可能在 Apache 默认配置文件中(我认为在 Ubuntu 中是 /etc/apache2/httpd.conf
?有人可以在 cmets 中纠正我),是这样一行:
NameVirtualHost *:80
# Also
Listen 80
Listen 443
将它们注释掉,并在您的 VirtualHost
配置文件中添加:
Listen 111.111.111.111:80
Listen 222.222.222.222:80
# If also using SSL
Listen 111.111.111.111:443
Listen 222.222.222.222:443
NameVirtualHost 111.111.111.111:80
NameVirtualHost 222.222.222.222:80
在许多默认的 Apache 配置中,Listen
和 NameVirtualHost
指令与通配符一起提供,或全局应用于所有网络接口。由于您使用绑定到不同配置的多个 IP 地址,因此您的配置指令需要比发行版的默认配置文件更具体。
【讨论】:
/etc/apache2/httpd.conf 为空。 /etc/apache2/httpd.conf 没有“NameVirtualHost”或“Listen”。还在寻找。 @Jay 试试grep -r Listen /etc/apache2
和grep -r NameVirtualHost /etc/apache2
确认理解...注释掉“NameVirtualHost”行和“Listen”行。我现在将根据我对如何修改虚拟主机文件的理解来更新原始帖子。谢谢。
@Jay 是的,正确。注释掉原来的指令并添加你的新指令
@Jay 如果没有更多的Listen
指令,222 IP 的端口 80 上可能已经有其他东西。以上是关于NameVirtualHost *:80 没有 VirtualHosts的主要内容,如果未能解决你的问题,请参考以下文章