我正在使用Wamp 2.2服务器的Windows 7。
我设置了2个虚拟主机www.project1.com和www.project2.com。
我已经在hosts文件中添加了这些条目,并在httpd.conf和httpd-vhosts.conf文件中添加了必需的条目。
使用我的浏览器,当我键入www.project1.com或www.project2.com,我得到我的网页在笔记本电脑上与服务器打开。
我设置了2个虚拟主机www.project1.com和www.project2.com。
我已经在hosts文件中添加了这些条目,并在httpd.conf和httpd-vhosts.conf文件中添加了必需的条目。
使用我的浏览器,当我键入www.project1.com或www.project2.com,我得到我的网页在笔记本电脑上与服务器打开。
127.0.0.1 localhost 127.0.0.1 www.project2.com 127.0.0.1 www.project1.com
httpd.conf文件中的更改: –
Include conf/extra/httpd-vhosts.conf
httpd-vhosts文件中的更改: –
NameVirtualHost *:80 <Directory "D:/websites/"> AllowOverride All Order Deny,Allow Allow from all </Directory> <VirtualHost 127.0.0.1> DocumentRoot "D:/websites/wamp/www/" ServerName localhost </VirtualHost> <VirtualHost 127.0.0.1> DocumentRoot "D:/websites/project1/" ServerName www.project1.com </VirtualHost> <VirtualHost 127.0.0.1> DocumentRoot "D:/websites/project2/" ServerName www.project2.com </VirtualHost>
现在,我可以从PC_1(与服务器)浏览器打开这些网页,如何从PC_2的浏览器(通过LAN连接到PC1的PC上)访问这些网页?
在您的虚拟主机指令中,将127.0.0.1更改为*:80,并按照Gabriel的说法,在另一台机器中的hosts文件中添加一个条目,将您的域添加到与服务器的IP相关联。
当您将明确的IP放入指令时,apache只会侦听该IP,但通配符会告诉它绑定到所有可用的IP。
<VirtualHost *:80> DocumentRoot "D:/websites/project1/" ServerName www.project1.com </VirtualHost>
例如,如果您的服务器位于192.168.1.70,则在lan上的其他机器中,主机条目将如下所示:
192.168.1.70 www.project1.com
重新启动apache,它应该工作正常。
注意,当您使用虚拟主机时,apache将使用第一个定义作为默认值,当它不能在HTTP请求头中传递的域和配置中的站点设置之间进行匹配时,这就是为什么默认页面出现。
您告诉apache使用NameVirtualHost *:80指令绑定到所有IP,但是后来没有为该外部IP设置一个站点。希望有帮助!