Php 建筑CMS体系结构-是否集中

Php 建筑CMS体系结构-是否集中,php,content-management-system,Php,Content Management System,我有一个专用服务器,我需要为我的客户构建新版本的个人PHP5 CMS。抛开我是否应该考虑使用开源的问题,我需要你对CMS体系结构的看法。 第一种方法(因为服务器完全在我的控制之下)是构建一个集中式系统,该系统可以从单个管理面板支持多个站点。基本思想是,我能够以超级用户的身份登录,创建新网站(从技术上讲,它会创建新的web根目录和新的数据库,以及其他一些东西),为特定客户分配模块和插件,或者在需要时开发新的模块和插件。如果客户登录此面板,他/她将看到并只能管理其网站内容 我见过这样一个系统(它是定

我有一个专用服务器,我需要为我的客户构建新版本的个人PHP5 CMS。抛开我是否应该考虑使用开源的问题,我需要你对CMS体系结构的看法。 第一种方法(因为服务器完全在我的控制之下)是构建一个集中式系统,该系统可以从单个管理面板支持多个站点。基本思想是,我能够以超级用户的身份登录,创建新网站(从技术上讲,它会创建新的web根目录和新的数据库,以及其他一些东西),为特定客户分配模块和插件,或者在需要时开发新的模块和插件。如果客户登录此面板,他/她将看到并只能管理其网站内容

我见过这样一个系统(它是定制的),它很好地修复了bug,新功能可以立即影响所有客户,而无需修补其他托管服务器上的每个CMS

我看到的负面方面是可伸缩性——如果我需要添加第二台服务器,如何合并它们以维护单个核心呢

第二种是经典的——针对每个客户的独立CMS

你要走哪条路?为什么


感谢您抽出时间。

如果您为所有客户端提供一个中央系统,那么可扩展性将变得更容易。您可以有一个大型数据库服务器和几个相同的web服务器(可能在负载平衡器后面),这样您就不必担心将客户机划分为不同的服务器。您的资源是集中在一起的,因此如果一个客户端一天的流量很大,它可能会被多个服务器占用,而不是让一个服务器(以及所有其他客户端的站点)瘫痪

您可以通过在负载平衡配置上使用“粘性会话”,或者通过让PHP将数据存储在所有服务器都可以访问的位置(例如数据库),让PHP会话在多个服务器上工作


保持web应用程序文件与一个代码库的同步应该不会太困难,可以使用诸如rsync之类的工具来帮助您。

这实际上取决于站点的类型。也就是说,我建议您考虑使用版本控制软件来管理多个安装。在实践中,这与集中式方法相同,但它可以让您自由推迟单个(或多个)站点的更新。

+1-如果您有一个带有大量每个站点自定义代码的可扩展系统,则需要权衡。您可以进行一次修复&它会传播到所有内容,但在部署之前,您必须针对所有内容测试修复。