svn 搭建php测试环境,SVN本地开发、测试环境版本控制-自动发布生产环境

发布系统 javascript

因为网站的结构是基于lnmp的,因此咱们主要的代码都是php代码,以前在大网站的时候,通常会有比较严格的流程和比较严格的打包发布机制,好比Yahoo的 yinst package, 可是对于初创团队来讲有些重了,这里咱们直接使用svn进行代码的管理和发布。 php

160675e18ae241d793fea915.html

虽然系统环境不复杂,可是咱们仍是分为开发环境,测试环境(beta),和生产环境(线上),开发环境咱们在本身的机器上搭建,个人是 Ubuntu的系统,everfly是MacOS的系统,测试环境在和svn服务同一台服务器上,咱们使用svnseve的post-commit 功能实现了一旦咱们提交了代码,服务器会自动将代码部署到beta环境的web服务器上, 在生产环境则是直接使用svn export进行部署,整个流程仍是很是简单的。 html

注意,有的时候咱们在生产环境和开发环境的时候须要执行不一样的逻辑,好比针对html内部引用的javascript代码,为了节省流量(固然 还有一个缘由是代码写的太丑了,不想让你们看到笑话),在生产环境上,咱们使用了jsmin进行压缩,可是在本机进行开发的时候,为了调试前端代码方便, 不能对javascript代码进行压缩,因此咱们经过设置环境变量,而后在代码中检测环境变量的方式解决了这个问题,因为环境变量是设置在web server或者php-fpm的配置中的,因此线上和开发环境能够保持同一份代码,在代码中判断当前的系统执行不一样的逻辑便可。 前端

SVN自动发布系统实现 java

实现过程,是使用了svn的一个hook的功能,调用了 post-commit 来作一些当提交完成后的操做。

一、在版本库的hooks目录下面,有一些基于事件触发的执行脚本,好比post-commit, 去掉后缀.tmpl

二、编辑svn代码库服务器上文件: svn/test/hooks/post-commit web

#!/bin/sh

REPOS="$1"

REV="$2"

export PATH="/usr/local/svn/bin:$PATH" #因为代码是apache的进程用户www运行,因此须要设置环境变量

export LC_CTYPE=en_US.UTF-8 #防止提交的文件名存在非字母字符。

if (svnlook log -r $REV /home/http/repository/svn/test | grep "auto_deploy" ) #当用户提交时注释中写上"auto_deploy"的时候,就自动部署到apache目录,不然不部署。

then

echo "`date` 'auto depoly command received" >> /tmp/test_svnautocommit.txt #这一行仅做调试使用

svn export "http://192.168.16.48/repo/svn/test/trunk/test_website" /home/http/html/test_website --force

fi

三、 在客户端测试,而且要在comment中加入 auto_deploy,不然不会触发自动部署的操做。 shell

参考文章 apache

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值