Php 人们如何处理内容管理系统生产转移?

Php 人们如何处理内容管理系统生产转移?,php,drupal,content-management-system,staging,Php,Drupal,Content Management System,Staging,为了好玩,我一直在钻研web开发技术(是的,我应该多钻研一点),对于生产阶段(即开发、测试、性能和生产环境)缺乏明确的支持,我感到有点震惊。实际上,支持不是一个词;内容管理系统似乎积极地与允许干净分段的努力相抗衡 目前我正在使用Drupal。我很难找到社区如何解决这个问题。我看到的大多数帖子都建议复制生产系统开发过程中的步骤(读到这篇文章实际上缩短了我的寿命)。我还听说将生产数据推还给开发人员,以便他们可以添加增量功能。这不是办法,如果客户不希望您将他们的数据拉回到您的开发环境中怎么办 最后,我

为了好玩,我一直在钻研web开发技术(是的,我应该多钻研一点),对于生产阶段(即开发、测试、性能和生产环境)缺乏明确的支持,我感到有点震惊。实际上,支持不是一个词;内容管理系统似乎积极地与允许干净分段的努力相抗衡

目前我正在使用Drupal。我很难找到社区如何解决这个问题。我看到的大多数帖子都建议复制生产系统开发过程中的步骤(读到这篇文章实际上缩短了我的寿命)。我还听说将生产数据推还给开发人员,以便他们可以添加增量功能。这不是办法,如果客户不希望您将他们的数据拉回到您的开发环境中怎么办

最后,我的问题是:

您如何管理CMS的实际生产阶段问题?

我的背景是,推动制作就像把人送上月球,所以我可能需要放松一下。然而,我仍然对涉及源代码控制、允许生产回滚和测试的答案感兴趣

目前我正在使用Drupal。我很难找到社区如何解决这个问题

这是Drupal的弱点之一;这件事确实处理得不好。由于Drupal的大部分配置都在数据库中,所以很难进行分类。

我已经回答了一个关于DB部署策略的问题

还有一个关于代码部署的问题

在我工作的地方,我们正在进行一个相当大的Drupal部署。我们大致有以下设置

所有开发人员都有一个本地沙盒(Drupal+DB)。将代码提交到所有其他开发人员共享的分支(我们大约有15人)。这包括由更新功能执行的配置更改

当开发人员启动svn时,他们还运行update.php在本地执行任何配置更改

我们有一个运行simpletest的sprint测试系统,可以用于用户测试

在sprint结束时(我们使用scrum),我们将分支合并到主干中,并在此基础上运行测试

然后我们将其标记为一个发行版,并将其部署到live(使用Capistrano),最后在live上运行update.php以将配置更改应用到live

任何紧急修复都会从主干部署到dot 7.1版等


如果您想了解更多详细信息,请留下评论。

在花了几周时间学习Drupal之后,如果您正在构建一个复杂的站点,“数据库中存储了太多配置”的问题非常令人不安


看看为解决这个问题所做的工作。他们正在领导和模块的开发,这些模块一起工作,将配置数据存储在模块中(数据库之外),以便使用代码对其进行版本控制。

您知道更好的CMS吗?或者我又回到了“你自己滚”的状态。我不想进入那个领域。根据我的经验,这是大多数开源cms的一个弱点。就我个人而言,我是一个自作主张的人,但有很多理由认为这不是最好的解决方案。如果你看看cms之外,Rails有一个非常好的部署管道。它不是php,但您也许可以转移概念。@troelskn谢谢,我会检查rails的。正如我在帖子中提到的,这都是关于放屁的:)+1的链接。我喜欢使用模块进行更新。对于这个过程,您有什么需要改进的吗?您的开发和部署设置非常棒。。你有没有一个链接或一篇文章来说明你是如何将所有这些工作结合起来的?Capistrano、simpletest等?你用过巡航控制吗?指向有趣文章的指针会很好。@我想您可以在这里获得概述@Ryan我们最大的问题是,我们在集成服务器上以增量方式运行更新,但在live上以批处理方式运行。这可能会表现得稍有不同,因此我们正在构建一个实例,每天导入实时数据,并批量测试更新的效果。回答很好,developmentseed就是其中一家可爱的公司;)+1只火烈鸟作为发展种子的路标,Sepher Lajevardi作为对它们的正面反馈。1只火烈鸟作为缩短寿命的补偿。这也让我感到震惊。