构建自动化工具
构建工具可以认为是一系列的脚本来完成应用部署的通用任务。构建工具并不属于应用的一部分,它独立于应用层 ‘之外’。
现在已有很多开源的工具来帮助你完成构建自动化,一些是用 PHP 编写,有一些不是。应该根据你的实际项目来选择最适合的工具,不要让语言阻碍了你使用这些工具,如下有一些例子:
Phing是一种在 PHP 领域中最简单的开始自动化部署的方式。通过 Phing 你可以控制打包,部署或者测试,只需要一个简单的 XML 构建文件。Phing (基于Apache Ant) 提供了在安装或者升级 web 应用时的一套丰富的任务脚本,并且可以通过 PHP 编写额外的任务脚本来扩展。
Capistrano是一个为 中高级程序员 准备的系统,以一种结构化、可复用的方式在一台或多台远程机器上执行命令。对于部署 Ruby on Rails 的应用,它提供了预定义的配置,不过也可以用它来 部署 PHP 应用 。如果要成功的使用 Capistrano ,需要一定的 Ruby 和 Rake 的知识。
对 Capistrano 感兴趣的 PHP 开发者可以阅读 Dave Gardner 的博文PHP Deployment with Capistrano,来作为一个很好的开始。
Chef不仅仅只是一个部署框架, 它是一个基于 Ruby 的强大的系统集成框架,除了部署你的应用之外,还可以构建整个服务环境或者虚拟机。
Deployer是一个用 PHP 编写的部署工具,它很简单且实用。并行执行任务,原子化部署,在多台服务器之间保持一致性。为 Symfony、Laravel、Zend Framework 和 Yii 提供了通用的任务脚本。
适用于 PHP 开发者的 Chef 资源:
Three part blog series about deploying a LAMP application with Chef, Vagrant, and EC2
Chef Cookbook which installs and configures PHP 5.3 and the PEAR package management system
Chef video tutorial seriesby Opscode, the makers of chef
延伸阅读: