<VirtualHost *:80>
DocumentRoot "D:/Projects"
ServerName 192.168.11.74
</VirtualHost>
为什么这不起作用?如何在本地机器(Windows、Apache、MySql、PHP)上访问基于公司内部网络分配的 IP 地址的网站,而外部无法访问。当笔记本电脑连接到内部网络时,所有网站都可以工作,但是当在公司网络之外时,这些基于 IP 的 URL 不起作用,即使所有代码库、开发环境都位于笔记本电脑本身的本地 Apache 服务器上。
有没有办法192.168.XX.XXX
指向127.0.0.1
答案1
选项1
像这样将 ServerName 设置为 localhost:
ServerName localhost
然后通过以下方式访问服务器
http://localhost
您的 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
答案2
如果您只打算使用一个虚拟主机,则可以使用 apache 默认虚拟主机。请参阅:Apache 默认虚拟主机
如果您托管多个虚拟主机,edvinas 会提供答案。为每个项目创建一个名称,并在主机文件中创建一个条目,该条目的名称指向始终可用的 127.0.0.1。
答案3
这不起作用,因为 Apache 的“ServerName”参数实际上表示:如果您收到请求,请确保用户指定的 URL 以 192.168.11.74 作为目标。当您在公司网络之外且未使用该 IP 地址(因为您被分配了另一个 IP 地址)时,您的请求将:
- 访问 Apache 服务器,但具有不同的 IP 地址(127.0.0.1 或外部网络分配给你的任何 IP),或者
- 无法连接到 Apache 服务器,因为您的计算机不知道 192.168.11.74 在哪里(它已经忘记了它以前的身份,因为它与新的网络位置无关)
如果您只需要一个网站(可能在此阶段),我建议删除 ServerName 行,因为它对您没有帮助(正如 Manuel Sousa 所建议的)并在本地使用 127.0.0.1,在工作网络上使用 192.168.11.74。
举一个可能达到既定目标的次优方法的例子,您可以尝试配置网卡,以便在您不工作时拥有一个额外的 IP 地址 (192.168.11.74)。挑战:
- 如果您的外部网络具有动态 IP 地址,这可能不起作用。
- 这可能会干扰您的计算机在工作网络上的运行。
再次强调,我认为这种方法是个坏主意,但你可以自己判断:http://social.technet.microsoft.com/Forums/windows/en-US/691d5aa4-09a3-4390-856a-26c10d773a3b/how-to-assign-differentmultiple-ip-address-to-nic-network-card?forum=w7itpronetworking
答案4
如果您尝试使用批处理文件,当您在网络外部时更改主机文件(C:\Windows\system32\drivers\etc\hosts),然后在网络内部更改另一个文件,会发生什么情况?
进行设置,以便当您在公司网络之外时,它会添加此行:
192.168.11.74 127.0.0.1
然后,一旦你进入公司网络,就再把它注释掉,如下所示:
#192.168.11.74 127.0.0.1
或者只需简单地删除该线也应该有效。
这样,可以保持 apache 配置完整,只需在笔记本电脑上进行更改即可。
干杯!