最佳部署Zend Web应用程序的方法

5

我已经阅读了很多有关部署应用程序的内容,但尚未找到适合我们需求的答案。

我们有一个使用zend框架构建的大型Web应用程序,我们想将其部署到远程服务器上。我们希望能够轻松安全地将新版本的应用程序部署到生产服务器上。

需要完成以下操作:

  • 在生产应用程序上放置维护页面?
  • 从SVN导出版本
  • 运行shell脚本以缩小特定目录中的CSS文件(shell脚本已完成)
  • 设置文件和目录的文件权限
  • 复制/同步?文件到生产服务器 -> 仅更改的文件?
  • 从生产应用程序中删除维护页面?

我们使用SVN作为代码版本控制工具,在生产中运行CentOS作为我们的服务器操作系统。

我了解了:

  • rsync
  • fredistrano / capistrano
  • phing
  • 自定义shell脚本

您对于易于一键部署有什么建议?


类似:https://dev59.com/23M_5IYBdhLWcg3w-4dg - Sampson
另一个类似的问题:https://dev59.com/RHI-5IYBdhLWcg3wHUnP - Peter Smit
2个回答

3
我将网站导出(或检出)一个副本,使用不同的名称(通常是Subversion修订号和日期),并将文档根目录符号链接到适当位置。
1000.20100515/
   application/
   public/
   library/
1020.20100621/
current (symlink to 1000.20100515/)
dev (symlink to 1020.20100621/)

# copy whatever 'dev' points to as the new 'current' symlink.
rm current && cp -d dev current

文档根目录在apache中设置为../current/public。
有了这个,我可以随意检查网站的新版本,并在一秒钟内将新版本全部上线。如果发现主要问题,回滚到以前的版本就像更改符号链接一样容易。 添加 基于ruby的工具'Capistrano'可以是完全自动化跨多台机器(无论是一台还是十几台)部署的绝佳方法,实际上这是我现在首选的部署方法。 Capifony是Capistrano的一个插件,也支持Composer项目。

3
你如何处理数据库架构的更改?那就有趣了 :p。 - wimvds
当然,我也很想听听。Dbdeploy? - Jorre

0

尝试使用Capistrano。它是为Ruby开发的,您需要在计算机上安装Ruby,但在目标服务器上没有必要安装它。

它可以与git或svn一起使用,并在目标服务器上创建版本。您可以使用一行CMD回滚和部署新版本。

我找到了这个教程:http://tfountain.co.uk/blog/2009/5/11/zend-framework-capistrano-deployment

您可以在这里找到另一个教程的修改版本:http://www.codewithstyle.eu/2011/05/03/deploying-zend-framework-applications-using-capistrano/


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接