APACHE虚拟主机报错原因
2010年03月22日
[warn] NameVirtualHost *:0 has no VirtualHosts
原因: The namevirtualhost command tells Apache that you will use VirtualHost boxes on a specific IP address. This command is needed only once for each IP address. It is not necessary to repeat the namevirtualhost directive for every VirtualHost box you use as in your example. The directive doesn't define a VirtualHost, it only tells Apache that on that IP address one or more virtual hosts will be present.
解决办法: 上面原因也说的很清楚啦, 其实就是在apache的配置文件里把NameVirtualHost *.ip 这行去掉就可以啦, 下面的virtualhost里有东西就可以啦, 这行就成了多余的累赘.
[error] (EAI 2)Name or service not known: Failed to resolve server name for "**.**.**.**"
这是apache虚拟主机没有设置域名,设置域名即可
ServerName xsdx.cn
[warn] VirtualHost X.X.X.X:80 overlaps with VirtualHost X.X.X.X:80, the first has precedence, perhaps you need a NameVirtualHost directive
在这里,NameVirtualHost的字段不能省略,否则起apache时报错:VirtualHost 220.231.32.*.80 overlaps with VirtualHost 220.231.32.*:80, the first has precedence, perhaps you need a NameVirtualHost directive——虽然apache能起,同错误描述一样,第二个站点的定义被第一个站点的定义所覆盖,即访问第二个站点指向的其实是第一个
NameVirtualHost字段的端口号不能忽略,否则起apache时报错:VirtualHost 220.231.32.*:80 -- mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results
[Sun Jul 09 16:59:37 2006] [error] VirtualHost 220.231.32.*:80 -- mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results——apache不能起
如果VirtualHost 字段的端口号缺失,起apache时报错:VirtualHost 220.231.32.28:0 -- mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results——但apache可以启动,访问也正常
例:
NameVirtualHost 111.111.111.111:80
<VirtualHost 111.111.111.111:80>
ServerName aaa.3322.org
DocumentRoot /var/www_zcg126
</VirtualHost>
<VirtualHost 111.111.111.111:80>
ServerName bbb.3322.org
DocumentRoot /var/www_49
</VirtualHost>