错误:" VirtualHost :80-不支持将端口和非*端口与NameVirtualHost地址混合,进行未定义的结果"
时间:2020-03-05 18:46:18 来源:igfitidea点击:
我在WindowsXP上运行WAMP v2.0,并且在http-vhosts.conf文件中设置了一堆虚拟主机。
这是可行的,但是在上周每当我尝试启动WAMP时,事件日志中都会出现此错误:
VirtualHost *:80 -- mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results.
服务器将无法启动。我想不出有什么变化。
我已经复制了下面的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
我收到此错误:
Only one usage of each socket address (protocol/network address/port) is normally permitted. : make_sock: could not bind to address 0.0.0.0:80
解决方案
回答
好吧,看来问题出在分配端口的方式(和顺序)上。
基本上,*:80表示"在此配置中,将端口80用于所有主机"。当我们执行此操作时,Apache尝试将该主机绑定到0.0.0.0:80,这意味着该主机将接收通过端口80到达计算机的每个单个数据包,而不管它打算将其发送到哪个虚拟主机。只有在该配置中只有一台主机的情况下,才应该使用一次。
因此,如果在配置文件中的两个主机上使用相同的*:80指令,则服务器将不会加载,因为它将尝试两次绑定0.0.0.0:80,第二次尝试失败。 (这说明"通常只允许使用每个套接字地址(协议/网络地址/端口)。: make_sock:无法绑定到地址0.0.0.0:80")。
回答
NameVirtualHost *:80 I get this error: Only one usage of each socket address (protocol/network address/port) is normally >permitted. : make_sock: could not bind to address 0.0.0.0:80
我认为这可能是因为我们还有其他东西要监听端口80。我们是否正在运行任何其他服务器(例如Skype)?
(如果是Skype:取消选中"工具>选项>高级>连接>使用端口80和443作为传入连接的替代")