从多个服务器的一台服务器加载CMS核心文件

时间:2011-01-13 09:18:13

标签: zend-framework

我差不多完成了我们的自定义CMS系统。现在我们想为不同的网站(以及将来的更多)安装它,但每次我更改核心文件时,我都需要单独更新每个服务器/网站。

我真正想要的是从我们的服务器加载核心文件,所以如果我安装CMS我只定义nedded配置文件(在该服务器上),其余的从我们的服务器加载。这样我就可以非常简单地传递核心中的变化,只有一次。

如何做到这一点,或者这是一种完全错误的方式?如果是这样,那么正确的方法是什么?我需要注意什么?它是安全的(不需要为https连接支付数千美元)吗?

我完全不知道如何开始或者开始,并且找不到任何有用的东西(可能是错误的搜索),所以一切都很有帮助!

提前致谢!

注意:我的应用程序是使用Zend Framework构建的

1 个答案:

答案 0 :(得分:1)

您无法在运行时从远程加载所需的文件(或者实际上不想;)。这个问题归结为适当的释放和配置管理,您可以在其中更新所有服务器。但这主要可以自动完成 根据您希望在此机制上花费多少时间,您需要注意一些事项。一般的想法是,您有一个中央服务器来保存版本,并让所有其他服务器检查是否有更新,下载并安装它们。有许多可能性,如svn,archives,......并且检查/更新可以在前端手动完成,也可以在后台由crons完成。通常,您将更新除配置文件和数据库之外的所有已更改文件,因为它们无法替换,但必须以某种方式进行修改(这是更新脚本到位的位置)。

这可能是这样的:

  • Cronjob正在服务器上运行,该服务器通过svn
  • 检查更新
  • 如果有新版本,则会执行svn-update

这是一个非常容易实现的mechansim,它有一些缺点,比如你无法更改配置文件和数据库。事实上,这是可能的,但很难实现 使用基于档案的解决方案可能会更容易:

  • Cronjob检查updateserver是否有新版本。这可以通过读取更新服务器上的文件内容并将其与本地副本进行比较来完成
  • 如果有新版本,请下载相关存档
  • 解压缩档案并复制文件

使用该方法,您可以将更新脚本包含在更新中以修改配置/数据库。

自动更新分发是一个非常复杂的主题,只有两种非常简单的方法。可能有很多不同的解决方案,“选择”正确的解决方案并不是一件容易的事情(如果你有不同版本的产品有依赖性,它甚至会变得更复杂:)并且没有“这就是它的方式必须完成“。