Apache:在本地机器上设置虚拟服务器,以便从局域网中的其他计算机访问

我在XP上运行Apache 2.2。 我想设置Apache,以便我有不同的testing站点(每个testing站点在不同的端口上侦听),以供我的内部(家庭networking)上的其他机器访问。

我设法设置不同的虚拟主机(全部使用端口80),然后我使用主机文件提供服务器名称,如:

127.0.0.1 localhost 127.0.0.1 test.php.localhost 127.0.0.1 phpmyadmin.localhost

等等

这在我的本地机器上工作正常,因为我可以访问http://phpmyadmin.localhost/ (例如,在我的本地机器上。但是,当我去到另一台机器,我不能键入http://phpmyadmin.localhost/我只能inputhttp:// [server.ip.address] ,在这种情况下,给我的httpd.conf文件中列出的第一个网站。

我有两个(可能有关)的问题

  1. 我需要做什么以便我可以从局域网中的另一台机器访问http://phpmyadmin.localhost/ (这仅仅是修改每台机器上的主机文件的情况,还是更复杂?)
  2. 如何从我的networking中的一台机器访问特定的网站(在本地服务器上),而不是自动分配到httpd.conf中列出的第一个网站?

我需要做什么以便我可以从局域网中的另一台机器访问http://phpmyadmin.localhost/ (这仅仅是修改每台机器上的主机文件的情况,还是更复杂?)

本地主机在每台计算机的主机文件中都有自己的条目 – 它指向特殊的回送IP地址127.0.0.1或本地机器。 当浏览器向127.0.0.1发出任何请求时,任何给定的机器都会在本地查找(本身),并且由于您已将所有主机项目指向127.0.0.1 ,因此无法将此configuration复制到其他机器上,所以必须使用公开你的主机的IP。

您应该在本地networking上托pipeDNSlogging,或者更简单地更改C:\WINDOWS\system32\drivers\etc\hosts每台客户端主机文件

 192.168.1.72 phpmyadmin phpmyadmin.mymachine testing.somemachine 

这将使所有请求http://phpmyadmin/直接到IP地址192.168.1.72

如何从我的networking中的某台机器访问特定的网站(在本地服务器上),而不是自动分配到httpd.conf中列出的第一个网站?

确保你已经configuration了你的主机文件 – 如果你使用的是基于名字的虚拟主机,你需要用相关的服务器名称(例如上面的phpmyadmin)来访问服务器,以便服务器可以在虚拟主机configuration中search该服务器/别名并加载适当的数据。