在networking外工作时,使用基于局域网的IP地址访问笔记本上的本地Apache?

<VirtualHost *:80> DocumentRoot "D:/Projects" ServerName 192.168.11.74 </VirtualHost> 

为什么这不工作? 如何访问基于外部无法访问的公司内部networking分配的IP地址的本地网站(Windows,Apache,MySql,PHP)上的网站。 当笔记本电脑连接到内部networking时,所有的网站都可以工作,但是当公司networking之外,即使所有的基于代码的开发环境驻留在笔记本本身的本地Apache服务器上,这些基于IP的URL也不起作用。

有没有办法指向192.168.XX.XXX127.0.0.1

选项1

将ServerName设置为localhost,如下所示:

 ServerName localhost 

然后通过访问服务器

 http://localhost 

不pipe你有什么IP。

选项2

首先你像这样设置VirtualHost:

 <VirtualHost *:80> DocumentRoot "D:/Projects" ServerName projecthost </VirtualHost> 

然后在Windows上,您可以随时设置“projecthost”将指向的IP。 编辑C:\ Windows \ system32 \ drivers \ etc \ hosts文件并添加:

 projecthost 127.0.0.1 

要么

 projecthost 192.168.11.74 

然后通过访问服务器

 http://projecthost 

如果你只打算使用一个虚拟主机,你可以使用Apache默认的虚拟主机。 请参阅: Apache默认虚拟主机

如果您正在托pipe多个虚拟主机,edvinas提供了答案。 为每个项目创build一个名称,然后在主机文件上创build一个名称为127.0.0.1的条目,该条目始终可用。

这不起作用,因为Apache的'ServerName'参数有效地说:如果您收到请求,请确保用户指定的URL具有192.168.11.74作为目标。 当您在公司networking之外并且没有使用该IP地址(因为您被分配了另一个IP地址),则您的请求将会:

  • 到达Apache服务器,但具有不同的IP地址(127.0.0.1或外部networking分配的任何IP),或者
  • 没有到达Apache服务器,因为你的电脑不知道192.168.11.74在哪里(它忘记了以前的身份,因为它与新的networking位置无关)

如果你只需要一个网站(可能在这个阶段),我会build议删除ServerName行,因为它不能帮助你(由Manuel Sousa推荐),在本地使用127.0.0.1,当你使用的时候是192.168.11.74在你的工作networking上。


一个可能实现既定目标的次优方法的示例,您可以尝试将网卡configuration为在不工作时拥有附加的IP地址(192.168.11.74)。 挑战:

  • 如果您的外部networking具有dynamicIP地址,这可能不起作用。
  • 这可能会干扰在您的工作networking上运行的计算机。

再次,我认为这种方法是一个坏主意,但你可以自己判断: http : //social.technet.microsoft.com/Forums/windows/en-US/691d5aa4-09a3-4390-856a-26c10d773a3b/how-到分配-differentmultiple-IP地址与网卡的networking卡?论坛= w7itpronetworking

你有什么其他的(另一个虚拟服务器,也许),在127.0.0.1听???

如果没有,你可以很好的编辑虚拟主机来解决所有在127.0.0.1接收的stream量

如果你尝试一个batch file来改变主机文件(C:\ Windows \ system32 \ drivers \ etc \ hosts),当你在networking之外,那么当你在里面的时候是另一个文件?

build立起来,当你在公司networking之外时,它增加了这一行:

 192.168.11.74 127.0.0.1 

然后,当你进入企业networking时,另一个评论它:

 #192.168.11.74 127.0.0.1 

或者只是简单地删除线也应该工作。

这样,可以保持完整的apacheconfiguration,只需在笔记本电脑上进行更改。

干杯!

您可以使用dynamicDNS服务来解决此问题,该服务允许您使用专用地址空间。 (例如,我知道dyn.com是这样做的,但我对他们的服务没有任何意见)

例如,你可以使用:

 ServerName myapp-whatever.dyndns.org 

在你的apache conf中运行一个更新客户端,它支持使用你的接口地址(而不是你检测到的公有IP,这是大多数人做的,但会为你打破)