您首选的php部署策略是什么?[已关闭]

2022-08-30 06:41:44

我正在用PHP开始一个新项目,我很想从其他开发人员那里得到一些关于他们首选的PHP部署策略的反馈。我希望将事情自动化一下,以便在提交更改后,可以将它们快速迁移到开发或生产服务器。

我有使用Capistrano和Ruby进行部署的经验,以及一些基本的shell脚本。

在我首先自己深入研究之前,很高兴听到其他人如何在他们的项目中解决这个问题。

更多信息

目前,开发人员在站点的本地安装上工作,并将更改提交到子版本存储库。初始部署是通过从 svn 导出标记的版本并将其上载到服务器来完成的。

其他更改通常通过手动上载已更改的文件逐个进行。


答案 1

对于PHP,带有Phping构建脚本的SVN是要走的路。Phing类似于ANT,但是是用PHP编写的,这使得PHP开发人员更容易根据自己的需求进行修改。

我们的部署例程如下:

  • 每个人都在工作中的同一本地服务器上进行开发,每个开发人员都可以在家中的计算机上进行签出。
  • 提交会触发提交后挂钩,该挂钩会更新暂存服务器。
  • 测试在暂存服务器上运行(如果通过) - 继续。
  • 运行 Phing 构建脚本:
  • 关闭生产服务器,将域切换到“正在建设中”页面
  • 在生产签出时运行 SVN 更新
  • 运行架构增量脚本
  • 运行测试
  • 如果测试失败 - 运行回滚脚本
  • 如果测试通过,服务器将路由回生产签出

还有phpUnderControl,它是一个持续集成服务器。老实说,我发现Web项目并不是很有用。


答案 2

我目前正在使用Git部署PHP。只需一个简单的 git 推送生产,即可使用 Git 中的最新副本更新我的生产服务器。它既简单又快速,因为Git足够聪明,只能发送差异,而不是整个项目。它还有助于在Web服务器上保留存储库的冗余副本,以防万一我的硬件故障(尽管为了安全起见,我也推送到GitHub)。


推荐