Php 部署到多个实例

Php 部署到多个实例,php,deployment,Php,Deployment,我一直在研究几个系统(Phing、ControlTier),也阅读了本网站上的所有相关问题,但我不确定是否找到了满足我要求的最佳解决方案 我有一个PHP网站,它本质上是一个价格比较购物网站的代码库。然后将其部署到许多不同的服务器上,每个服务器都有自己的主题和数据库,具体取决于销售的产品。当对代码库进行更改或修复错误时,需要使用典型的工作流(备份、部署、测试、回滚/提交)将其推送到每个服务器。理想情况下,我想用现有的东西来实现这一点,而不是我自己的,不过我可能会考虑这个选择 该系统的未来版本可能支

我一直在研究几个系统(Phing、ControlTier),也阅读了本网站上的所有相关问题,但我不确定是否找到了满足我要求的最佳解决方案

我有一个PHP网站,它本质上是一个价格比较购物网站的代码库。然后将其部署到许多不同的服务器上,每个服务器都有自己的主题和数据库,具体取决于销售的产品。当对代码库进行更改或修复错误时,需要使用典型的工作流(备份、部署、测试、回滚/提交)将其推送到每个服务器。理想情况下,我想用现有的东西来实现这一点,而不是我自己的,不过我可能会考虑这个选择

该系统的未来版本可能支持从单个代码库运行多个站点,但目前这是不可能的,部分原因是我继承了很多代码,同时我的SEO团队向我保证拥有多个服务器和IP是一件好事


非常感谢您就此类部署的最佳设置提供的任何建议。

是一篇关于Phing的讨论,它可能是一个对您有用的工具。。。自动运行PHP中定义的任务。我自己没用过,但是演讲的人知道他的东西。

Phing可以用几行(配置)代码为您做很多事情。我想您已经准备好了一个适当的实现来处理代码库不同实例的“标记性”了吧

您将使用phing实现3个简单的命令,每个命令都自动执行与部署相关的手动工作

phing阶段

当SVN提交发生时,它将使用SVN钩子从SVN获取数据(仅当新标记被创建为“/myrepos/tags/2/2.1.7”时),这样它就可以成为简单连续集成的一部分。因此,svn升级可能发生在一个登台服务器上,您可以在该服务器上对准备发布的代码(phpunit、frontend、manual…)运行最终测试

phing部署

当您对结果感到满意时发出。 在所有服务器上备份数据,然后通过在上述步骤中签出和测试的代码进行复制。SCP任务在phing中可用,但您需要php ssh2扩展(PECL模块)

phing回滚

如果一切正常,您可以停止,但如果您必须收回已部署的更改(全部),您可以实施“phing回滚”,从备份复制过来

应该是直截了当的

您可以在服务器上进行迭代,并根据需要填充或映射不同的变量 “服务器1”->“themeblue” “服务器2”->“主题化” 并仅复制启用正确样式所需的主题目录或配置文件

了解Ant的人也可以使用phing,但phing的优势是它非常容易部署。它的可扩展性也是一个真正的优点。你知道php吗?您可以编写一个新操作或筛选器,以便在将来的部署场景中重用

如果我是你的话,我会让phing试一试

哦,欢迎加入#phing on freenode。它很空,但我们可以改变它;)