我正在为我的电脑configurationApache虚拟主机。 但是我这样做面临着问题。
我在C:\ WINDOWS \ system32 \ drivers \ etc \ hosts中做了必要的修改,然后在C:\ xampp \ apache \ conf \ extra \ httpd-vhosts.conf中添加了以下几行:httpd-vhosts.conf
########################Virtual Hosts Config below################## NameVirtualHost 127.0.0.1 <VirtualHost localhost> ServerName localhost DocumentRoot "C:\xampp\htdocs" DirectoryIndex index.php index.html <Directory "C:\xampp\htdocs"> AllowOverride All </Directory> </VirtualHost> <VirtualHost virtual.cloudse7en.com> ServerName virtual.cloudse7en.com DocumentRoot "C:\development\virtual.cloudse7en.com\httpdocs" DirectoryIndex index.php index.html <Directory "C:\development\virtual.cloudse7en.com\httpdocs"> Options Indexes FollowSymLinks Includes ExecCGI AllowOverride All Order allow,deny Allow from all </Directory> </VirtualHost> <VirtualHost virtual.app.cloudse7en.com> ServerName virtual.app.cloudse7en.com DocumentRoot "C:\development\virtual.app.cloudse7en.com\httpdocs" DirectoryIndex index.php index.html <Directory "C:\development\virtual.app.cloudse7en.com\httpdocs"> Options Indexes FollowSymLinks Includes ExecCGI AllowOverride All Order allow,deny Allow from all </Directory> </VirtualHost> ########################################################################
我开始我的xampp,并在浏览器中尝试http:// localhost 。 这个工程,打开http:// localhost / xampp /
但是当我尝试http:http: //virtual.app.cloudse7en.com它再次打开http://virtual.app.cloudse7en.com/xampp/
我不明白原因。 另外我有一个Windows Vista 64位操作系统。 我是否还需要进行其他更改?
问候Zee
在每一个NameVirtualHost之后, <VirtualHost之后的部分必须与之后的部分匹配。 (此function可以在一台机器上在多个IP地址上有多个域)。在您的情况下:
<VirtualHost 127.0.0.1>
根据Jason的回答,Apache使用一个来自客户端的HTTP头,该头与给定的configuration块中的ServerNamevariables匹配; configuration块必须匹配相同的IP接口。 编写你正在做的最典型的方法是这样的:
NameVirtualHost *:80 <VirtualHost *:80> ServerName default.server.com ... </VirtualHost> <VirtualHost *:80> ServerName virtual-1.server.com ... </VirtualHost> <VirtualHost *:80> ServerName virtual-2.server.com ... </VirtualHost>
如果你想专门使用127.0.0.1,那也可以。 但是,有一个更有趣的方式来做到这一点,不涉及使用您的主机文件 – 不同的端口。 它可能看起来像:
Listen 80 Listen 81 Listen 82 NameVirtualHost *:80 NameVirtualHost *:81 NameVirtualHost *:82 <VirtualHost *:80> ServerName default.server.com ... </VirtualHost> <VirtualHost *:81> ServerName virtual-1.server.com ... </VirtualHost> <VirtualHost *:82> ServerName virtual-2.server.com ... </VirtualHost>
然后,您只需使用不同的端口进行网页浏览:
http://localhost:80/ http://localhost:81/ http://localhost:82/
…每个人都会带你到那个configuration块。
检查httpd.cnf的ServerRoot 。
另外检查一下: http : //www.apachefriends.org/f/viewtopic.php?f=17&t=29980&start=0&sid=fbb155f1e06ce2c9564702936fe0c931&view=print