我一直在研究几个系统(Phing,ControlTier),并且还阅读了本网站上的所有相关问题,但我不确定我是否找到了满足我要求的最佳解决方案。
我有一个PHP网站,它本质上是价格比较购物网站的代码库。然后将其部署到许多不同的服务器,每个服务器根据销售的产品具有其自己的主题和数据库。当对代码库进行更改或错误修正时,需要使用典型的工作流(备份,部署,测试,回滚/提交)推送到每个服务器。理想情况下,我想使用现有的东西来实现这个目标,然后我可以看一下这个选项。
系统的未来版本可能支持从单个代码库运行多个站点,但目前这是不可能的,部分原因是我继承了大量代码,而且我的SEO团队向我保证拥有多个服务器和IP是一件好事。
非常感谢任何有关此类部署的最佳设置的建议。
答案 0 :(得分:3)
Phing可以在几行(配置)代码中为你做很多事情。我认为你已经有了一个实现处理代码库不同实例的“themabelity”的实现?
您可以使用phing来实现3个简单的命令,每个命令都会自动完成部署所涉及的手动工作。
phing stage
当svn提交发生时,它将使用svn钩子从SVN获取(假设只有当一个新标签被创建为“/myrepos/tags/2/2.1.7”时),这样它才能成为简单的一部分持续集成。所以svn up COULD发生在一个临时服务器上,你可以在你的现成代码上运行最终测试(phpunit,前端,手册......)。
phing deploy
当您对结果感到满意时发出问题。 在所有服务器上备份数据,然后复制已在上述步骤中检出并测试的代码。 SCP-tasks可用于phing,但你需要php ssh2扩展(PECL模块)
phing roll back
如果一切正常,您可以停止,但如果您必须收回已部署的更改(全部),您可以实施“备份回滚”,从备份中复制。
应该很简单。
您可以迭代服务器,并根据需要填充或映射不同的变量 “Server1” - > “themeblue” “Server2” - > “themered” 并仅复制您需要的主题目录或配置文件以启用正确的样式。
知道Ant的人也可以使用phing,但phing的优势在于它很容易部署。它的可扩展性也是一个真正的优点。你知道php吗?您可以编写一个新的操作或过滤器,以便在将来的部署中重复使用。
如果我是你,我会给你打电话。哦,随时加入#phing on freenode。它很空但我们可以改变它;)
答案 1 :(得分:0)
http://vimeo.com/13441373是关于Phing的讨论,它可能是一个有用的工具...自动运行PHP中定义的任务。我自己没有用过,但是这个演讲的人知道他的东西。