NameVirtualHost *:80没有虚拟主机

我有两个域名,两个SSL证书和两个IP地址。 我正在尝试为他们configuration我的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> 

domain2的VirtualHost文件:

 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> 

在你configuration的某个地方,可能是在Apache的默认configuration文件(我认为Ubuntu中的/etc/apache2/httpd.conf ?有人可以纠正我的意见),是一个看起来像这样的行:

 NameVirtualHost *:80 # Also Listen 80 Listen 443 

注释掉它们,并在你的VirtualHostconfiguration文件中添加:

 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 

在许多默认的Apacheconfiguration中, ListenNameVirtualHost指令都提供有通配符,或全局适用于所有networking接口。 由于您使用绑定到不同configuration的多个IP地址,因此您的configuration指令中需要比发行版的默认configuration文件更具体。

我已经忽略了两个月我有一个Ubuntu服务器相同的错误。 我发现这个post很好地解决了错误。 谢谢迈克尔 ! 和Jay一样 ,我在/etc/apache2/ports.conffind了罪魁祸首。 我试过这个:

  #NameVirtualHost *:80 

我只评论了这一行,没有其他变化,没有更多

“NameVirtualHost *:80没有VirtualHosts”