这是八篇文章中的最后一篇,详细介绍了部署到ZendServer的技巧。该系列的上一篇文章详细介绍了使用ZendServerSDK从命令行部署ZendServer部署包(ZPK)。
今天,我将详细介绍我如何使用zf-deploy和zs-client(ZendServerSDK)进行自动化部署,并以一些结束语结束本系列。
技巧8:自动化
在整个系列中:
- 我已经为我要运行的计划任务定义了作业队列脚本。
- 我已经定义了部署脚本来在服务器上自动执行部署任务,包括安排上述作业队列脚本,以及为我的应用程序准备环境。
- 我正在使用zf-deploy创建ZPK包以推送到服务器,其中包含上述脚本以及我的部署配置。
- 我正在使用ZendServerSDK来部署我们的ZPK。
但这是一堆手动步骤。如果我可以自动化它会怎样?
有很多工具可以处理这类事情。我可以写一个shell脚本。我可以使用Phing。
我个人喜欢为此使用make(是的,我是一只恐龙)。例如:
PHP ?= $(shell which php) VERSION ?= $(shell date -u +"%Y.%m.%d.%H.%M") CONFIGS ?= $(CURDIR)/../site-settings ZSCLIENT ?= zs-client.phar ZSTARGET ?= mwop COMPOSER = $(CURDIR)/composer.phar .PHONY : all composer zpk deploy clean all : deploy composer : @echo "Ensuring composer is up-to-date..." -$(COMPOSER) self-update @echo "[DONE] Ensuring composer is up-to-date..." zpk : composer @echo "Creating zpk..." -$(CURDIR)/vendor/bin/zfdeploy.php build mwop-$(VERSION).zpk --configs=$(CONFIGS) --zpkdata=$(CURDIR)/zpk --version=$(VERSION) @echo "[DONE] Creating zpk." deploy : zpk @echo "Deploying ZPK..." -$(ZSCLIENT) applicationUpdate --appId=20 --appPackage=mwop-$(VERSION).zpk --target=$(ZSTARGET) @echo "[DONE] Deploying ZPK." clean : @echo "Cleaning up..." -rm -Rf $(CURDIR)/*.zpk @echo "[DONE] Cleaning up."
以上确保我的ZPK具有版本名称,允许我将最后几个保留在工作目录中以供参考;当我准备好时,干净的目标会为我删除它们。使用make也给了我一些粒度;如果我只想构建ZPK,以便检查它,我可以使用makezpk。
当然,如果我想在构建过程中进行任何其他预处理或后处理,我也可以这样做。(在我的实际脚本中,我做了一些预处理任务。)
不过,主要的收获是:自动化这些步骤。这使您可以轻松地在需要时进行部署,并且您进行的部署越简单,您就越有可能自信地推动新的变化。
结束语
我对使用ZendServer进行的实验非常满意,并且对我编写的各种作业、部署脚本和作业变得非常有信心。它们使部署变得微不足道,这是我非常满意的一点。我更高兴在AWS上拥有我的网站,因为它为我提供了一些扩展选项,如果我以后需要它们的话。
通过本系列中的技巧和提示,希望您会发现自己已成功将您的应用程序部署到ZendServer!
系列其他文章
- 技巧1:zf-deploy
- 技巧2:重复作业
- 技巧3:chmod
- 技巧4:保护作业脚本
- 技巧5:设置作业状态
- 技巧6:页面缓存
- 技巧7:zs-client