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

时间:2010-05-26 18:50:52

标签: zend-framework deployment capistrano rsync phing

我已经阅读了很多关于在这里部署应用程序的内容,但还没有找到适合我们需求的答案。

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

需要做的是:

  • 在生产应用程序上建立维护页面?
  • 从SVN导出版本
  • 运行一个shell脚本来缩小某个目录中的CSS文件(shell脚本已完成)
  • 设置文件和目录的文件权限
  • 拷贝/同步?文件到生产服务器 - >只更改了文件?
  • 从生产应用程序中删除维护页面?

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

我读过:

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

您对轻松一键部署的建议是什么?

2 个答案:

答案 0 :(得分:3)

我以不同的名称(通常是颠覆修订版号和日期)导出(或签出)该网站的副本,并将文档根目录符号链接到位

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的项目。

答案 1 :(得分:0)

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

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

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

你有一个修改版的capistrano,另有一个教程:http://www.codewithstyle.eu/2011/05/03/deploying-zend-framework-applications-using-capistrano/