0

我在 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 user@host.com
    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

4

2 回答 2

4

名称虚拟主机 *:80

我收到此错误:

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

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

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

于 2008-09-02T11:56:29.810 回答
0

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

基本上, *:80 表示“在此配置中为所有主机使用端口 80”。当您这样做时,Apache 会尝试将该主机绑定到 0.0.0.0:80,这意味着该主机将接收通过端口 80 进入机器的每个数据包,而不管它打算去哪个虚拟主机。这是您应该只使用一次的东西,并且只有当您在该配置中有一个主机时。

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

于 2008-09-02T11:39:54.437 回答