当我将下面一行添加到/etc/apache2/apache2.conf ,我重新启动apache后出现以下错误:
Include /usr/share/doc/apache2.2-common/examples/apache2/extra/httpd-vhosts.conf
[Mon Jun 14 12:16:47 2010] [错误] VirtualHost *:80 – 混合*端口和非*端口与NameVirtualHost地址不支持,处理未定义的结果[Mon Jun 14 12:16:47 2010 ] [警告] NameVirtualHost *:80没有VirtualHosts
这是我的httpd-vhosts.conf文件:
# # Use name-based virtual hosting. # NameVirtualHost *:80 # # VirtualHost example: # Almost any Apache directive may go into a VirtualHost container. # The first VirtualHost section is used for all requests that do not # match a ServerName or ServerAlias in any <VirtualHost> block. <VirtualHost *:80> ServerName tirengarfio.com DocumentRoot /var/www/rs3 <Directory /var/www/rs3> AllowOverride All Options MultiViews Indexes SymLinksIfOwnerMatch Allow from All </Directory> Alias /sf /var/www/rs3/lib/vendor/symfony/data/web/sf <Directory "/var/www/rs3/lib/vendor/symfony/data/web/sf"> AllowOverride All Allow from All </Directory> </VirtualHost>
任何想法是什么造成这个?
在http.conf中有另一个NameVirtualHost条目导致了这个问题。 查找像NameVirtualHost *:*某处的条目,并删除该应该删除该错误。
此外,作为一个方面说明,直接从示例文档中包含httpd-vhosts.conf可能不是一个好主意,因为根据权限,它可能不是特别安全。 这也不是其他人所期望的,尽pipe如果你是唯一一个pipe理服务器的人,那么问题就更小了。
有可能是另一个虚拟主机干扰你正在尝试定义的一个。 它可以在site-available,sites-enabled或apache2.conf中定义。 VHost的定义应该看起来像
NameVirtualHost *:80 NameVirtualHost *:81 <VirtualHost *:80> # ... </VirtualHost> <VirtualHost *:81> # ... </VirtualHost>
将configuration文件复制到/ etc目录会更好。 无论如何,search(见下文)是否有任何Apacheconfiguration文件中的另一个虚拟主机指令。
grep -lir虚拟主机/ etc / apache2
(我猜所有的apacheconfiguration文件都在/ etc / apache2目录下)