选项1

选项1
<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 配置完整,只需在笔记本电脑上进行更改即可。

干杯!

相关内容