我创建了一个 AMP Web 应用程序,该应用程序最初将由传统的第 3 方主机提供服务。
当我们完成时,客户决定在内部托管它,在他们办公室网络的服务器上。该应用程序仅供工作人员使用,但这些工作人员通常不在现场。我没有参与建立他们的网络,该网络至少使用一台运行 Windows Server 2003 的服务器。我看到的客户端机器是 XP。
我在服务器 2003 机器上设置了 Apache、MySQL 和 PHP,并安装了应用程序。该应用程序是基于 CodeIgniter 框架构建的,因此我将 base_url 设置为内部 IP(192.168...),并且我们从网络内部进行了测试。一切正常。
接下来,我们要求他们的网络人员为 apache 打开端口 80。我将 base_url 设置为外部 IP,并在我家进行了测试(使用外部 IP 作为网址),它工作正常。
但是,当尝试使用网络内的外部 IP 访问应用程序时,它们无法连接。我可以将base_url重置为网络IP,他们可以使用网络IP访问它,但是在外部连接时应用程序失败(因为在整个应用程序中使用的base_url指向内部IP)。
它假设我可以让 CodeIgniter 确定 base_url(通过将变量保留为空字符串),但宁愿找出外部 IP 在网络中失败的原因,并尝试纠正它。
我们使用的服务器并非专用于 AMP 堆栈(事实上,它至少有一个其他应用程序广播到互联网,该应用程序必须使用 IIS,以及用于办公室扫描仪的 FTP 服务器),所以我想那里可能会有一些冲突。
我对windows网络知之甚少。快速搜索表明这可能是因为 NAT,但没有提供解决方法。
他们的网络人没有任何建议,并说一切都应该没问题。
是否可以让网络内的用户使用外部 IP 访问 Apache 服务器,如果可以,需要做什么来启用它?
TYIA