www.project1.com
和www.project2.com
。 httpd.conf
和httpd-vhosts.conf
文件修改为我在下面提到的更改。 使用我的浏览器,当我输入www.project1.com
或www.project2.com
时,我成功地在安装了服务器的笔记本电脑上打开了我的网页。
“ hosts文件”中的更改:我已将以下内容添加到文件末尾: -
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连接到PC_1
的PC。)
答案 0 :(得分:23)
在您的virtualhost指令中,将127.0.0.1
更改为*:80
,正如Gabriel所提到的,在另一台计算机的主机文件中添加一个条目,添加您的域以与您的服务器的IP相关联。
当您将明确的IP放入指令时,apache将仅侦听该IP - 但通配符将告诉它绑定到可用的所有IP。
<VirtualHost *:80>
DocumentRoot "D:/websites/project1/"
ServerName www.project1.com
</VirtualHost>
例如,如果您的服务器位于192.168.1.70上,那么在您局域网中的其他计算机上,hosts条目将如下所示:
192.168.1.70 www.project1.com
重启apache,它应该可以正常工作。
请注意,当您使用虚拟主机时,如果无法在HTTP请求标头中传递的域与配置中的站点设置之间进行匹配,则apache将使用第一个定义作为默认值。为什么你的默认页面出现了。
您告诉apache使用NameVirtualHost *:80
指令绑定到所有IP,但之后没有为该外部IP设置站点。希望有所帮助!
答案 1 :(得分:22)
除了danp的回答之外,您还可以通过为虚拟主机分配端口来访问虚拟主机,而无需更改客户端计算机的etc / hosts文件。如果您想使用移动设备或平板电脑设备访问服务器,这是理想的选择:
在以下位置编辑服务器的httpd.conf
文件:
\wamp\bin\apache\apache2.2.x\conf\httpd.conf
搜索&#34; Listen
&#34; (第61行)。您应该看到以下内容允许Apache侦听端口80:
Listen 0.0.0.0:80
Listen [::0]:80
添加以下行以添加侦听端口81
(或任何端口):
Listen 0.0.0.0:81
Listen [::0]:81
在以下位置编辑httpd-vhosts.conf
文件:
\wamp\bin\apache\apache2.2.x\conf\extra\httpd-vhosts.conf
将&#34;虚拟主机&#34; 标记更改为端口81
:
<VirtualHost *:81>
DocumentRoot "D:/websites/project1/"
ServerName www.project1.com
</VirtualHost>
重启Apache服务器。
在客户端计算机/平板电脑/移动设备上,在Web浏览器上,按以下格式输入服务器的IP地址(192.168.0.10
或任何IP),然后输入端口号:
http://192.168.0.10:81
答案 2 :(得分:5)
本地网络中有两台计算机。
计算机(192.168.1.70)安装程序(D:\ wamp \ bin \ apache \ Apache2.2.11 \ conf \ extra \ httpd-vhosts.conf):
<VirtualHost *:80>
DocumentRoot "D:/websites/project1/"
ServerName www.project1.com
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "D:/websites/project2/"
ServerName www.project2.com
</VirtualHost>
B计算机设置(c:/ windows / system32 / drives / etc / hosts):
192.168.1.70 www.project1.com
192.168.1.70 www.project2.com
B访问A,我的项目正在运行。
答案 3 :(得分:2)
要为所选答案考虑的几个更新点:
NameVirtualHost
2.3.11,可以省略。
在2.3.11及更高版本中,任何时候IP地址和端口组合 在多个虚拟主机中使用,基于名称的虚拟主机是 自动启用该地址。
因为我们正在谈论通过局域网托管网站,所以让我们设置一个
要求*仅接受来自您的IP地址的连接
本地网络。例如,在常见的Linksys路由器上,默认
分配给网络上每个设备的IP介于192.168.1.100之间
到192.168.1.255。您可以允许来自所有设备的连接
使用Require ip 192.168.1
的IP地址为192.168.1.XXX的LAN
(注意最后的八位字节不在IP上以允许整个
范围内)。
这允许您配置每个项目的访问权限 通过局域网提供,另一个仅在本地提供。
# This will allow all LAN connections to www.project1.com
<VirtualHost *:80>
DocumentRoot "D:/websites/project1/"
<Directory "D:/websites/project1/">
Require local
Require ip 192.168.1
</Directory>
ServerName www.project1.com
</VirtualHost>
# This will allow only the machine hosting the website to access www.project2.com
<VirtualHost *:80>
DocumentRoot "D:/websites/project2/"
<Directory "D:/websites/project2/">
Require local
</Directory>
ServerName www.project2.com
</VirtualHost>
如果没有路由器将端口80上的流量转发给您的主机,您的网站将不会公开提供,我相信这被认为是最佳做法。如果您需要控制LAN上设备可用的项目,则尤其必要。
提醒:您的主机应配置为使用静态IP地址 而不是由路由器的DHCP分配一个。既然我们是 编辑其他设备的hosts文件以指向服务器的IP, 我们不希望它改变。
*我之所以这样,是因为在本地开发服务器上拥有访问限制是很常见的,您需要专门将其提供给本地网络。
答案 4 :(得分:0)
您需要更改您尝试查看该页面的计算机上的主机文件。
因此您需要将它们添加到另一台局域网上的hosts文件中。