错误:“VirtualHost *:80 -- 不支持将 * 端口和非 * 端口与 NameVirtualHost 地址混合,继续显示未定义的结果”

Error: "VirtualHost *:80 -- mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results"

提问人:Glenn Slaven 提问时间:9/2/2008 最后编辑:CœurGlenn Slaven 更新时间:8/6/2017 访问量:5889

问:

我在 WindowsXP 上运行 WAMP v2.0,并在 http-vhosts.conf 文件中设置了一堆虚拟主机。

这是有效的,但是在上周,每当我尝试启动WAMP时,我都会在事件日志中收到此错误:

VirtualHost *:80 -- 混合 * 端口和 具有 NameVirtualHost 的非 * 端口 地址不受支持,继续 结果未定义。

服务器无法启动。我想不出有什么变化。

我已经复制了下面的 conf 文件。

NameVirtualHost *
<VirtualHost *:80>
    ServerName dev.blog.slaven.net.au
    ServerAlias dev.blog.slaven.net.au
    ServerAdmin [email protected]
    DocumentRoot "c:/Project Data/OtherProjects/slaven.net.au/blog/" 
    ErrorLog "logs/blog.slaven.localhost-error.log"
    CustomLog "logs/blog.slaven.localhost-access.log" common

    <Directory "c:/Project Data/OtherProjects/slaven.net.au/blog/">
        Options Indexes FollowSymLinks MultiViews
        AllowOverride all
            Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

编辑:我的意思是补充,如果我更改 NameVirtualHosts 指令以指定端口,即

NameVirtualHost *:80

我收到此错误:

通常只允许使用每个套接字地址(协议/网络地址/端口)一次。: make_sock: 无法绑定到地址 0.0.0.0:80

Windows Apache WAMP

评论


答:

0赞 dguaraglia 9/2/2008 #1

好吧,问题似乎在于分配端口的方式(和顺序)。

基本上,*:80 表示“对此配置中的所有主机使用端口 80”。执行此操作时,Apache 会尝试将该主机绑定到 0.0.0.0:80,这意味着该主机将接收通过端口 80 进入计算机的每个数据包,无论它打算转到哪个虚拟主机。这是您应该只使用一次的东西,并且仅当您在该配置中有一个主机时。

因此,如果配置文件中的两个主机上有相同的 *:80 指令,则服务器将不会加载,因为它将尝试绑定 0.0.0.0:80 两次,第二次尝试失败。(这解释了“通常只允许使用每个套接字地址(协议/网络地址/端口)的一种用法:make_sock:无法绑定到地址 0.0.0.0:80”消息)。

4赞 nohj 9/2/2008 #2

名称VirtualHost *:80

我收到此错误:

通常只允许每个套接字地址(协议/网络地址/端口)使用一次>。: make_sock: 无法绑定到地址 0.0.0.0:80

我认为这可能是因为您有其他东西在监听端口 80。您是否有其他服务器(或例如Skype)在运行?

(如果是 Skype:取消勾选“高级>连接>工具>选项>使用端口 80 和 443 作为传入连接的替代方案”)