【问题标题】:same domain, different server php include相同的域,不同的服务器 php 包括
【发布时间】:2011-12-19 08:45:28
【问题描述】:

假设我有两个服务具有相同的域,但主机名不同,并且在不同的物理计算机上(例如 maps.google.com 和 mail.google.com)。我想包含一些从一台服务器到另一台服务器的 php 代码......我该怎么做? (我看到很多关于如何在同一服务器上跨不同域包含的内容,但这不是我想要的。)

编辑:我控制了我想要包含的两个服务,但它们位于同一域下的不同物理服务器上。有人建议我使用一个存储库,然后让每个服务器克隆它,所以我现在的问题是,当对该存储库进行更改时,我是否能够自动将每个服务器更新到最新版本?我正在尝试创建跨不同服务的基本功能的代码库。

【问题讨论】:

  • 如果它是一个子域,那么它不会在你的htdocs下的不同文件夹中吗?
  • 把它放在一个仓库并在不同的机器上克隆它有什么问题?
  • 将它放在一个仓库中并克隆它是否允许我在进行更改时更新它们?这真的是我想要的......
  • 您有一个应用程序的需求,并想出了一个可能的解决方案。与其问如何实施您的特定解决方案,不如先问如何构建您希望实现的目标。
  • @hackartist 当然,只需制作一个部署脚本(使用 capistrano 或其他工具)。

标签: php include dns


【解决方案1】:

如果你想包含来自远程 HTTP 服务器的 php 文件,你将面临两个问题:

  • 远程服务器将解释其 php 文件,因此您只会获得 HTML(或任何其他生成的格式)流。它可以被绕过,但您必须访问远程服务器设置。
  • 这绝对不安全。如果有人更改远程脚本,他可能会做一些非常糟糕的事情(比如删除文件,甚至执行系统命令)

但是,如果远程服务器允许您访问纯文本版本的脚本,您只需 include 它即可。

【讨论】:

    【解决方案2】:

    您不能,至少在不向公众公开您的代码的情况下是不能的。如果可以从任何服务器读取 PHP 源代码,那将是一个可怕的安全漏洞。

    如果您的代码绝对不敏感,请更改其扩展名,使其不可执行(例如,.inc 文件)并包含它。

    【讨论】:

      【解决方案3】:

      我建议挂载远程主机的目录(例如:Linux 的 NFS (网络文件系统),Windows 的 Windows 共享)。

      通过 HTTP 包含(= 执行)代码不是一个好主意,因为不涉及身份验证。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-06-04
        • 2014-03-17
        • 2011-01-15
        • 2017-09-26
        • 1970-01-01
        • 2015-08-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多