svn提交后测试网站自动发布的配置

在以往的操作过程中,svn的提交跟测试服务器的更新是要分开进行的,这实在不是很必要,操作繁琐浪费时间。想起svn仓库中的hook,经过配置后,达到了想要的效果。

  • 环境:ubuntu server 8.04.2,为便于管理,采用基于apache2虚拟主机的配置方案,将svn绑定到具体的网站目录或二级域名。仓库存放在统一的一个目录/home/username/svn/,网站也统一放到一个目录/home/username/web/。
  • 步骤如下:
  1. sudo apt-get install apache2 libapache2-svn subversion
  2. sudo a2enmod dav_svn
  3. sudo /etc/init.d/apache2 reload
  4. 增加配置段到虚拟主机:<Location /svn>
    DAV svn
    SVNParentPath /home/username/svn/svnlib

    AuthType Basic
    AuthName “Subversion Repository”
    AuthUserFile /home/username/svn/dav_svn.passwd

    AuthzSVNAccessFile /home/username/svn/dav_svn.authz
    Require valid-user
    </Location>

  5. 用htpasswd建立dav_svn.passwd
  6. 再配置dav_svn.authz权限控制,具体参照svn手册
  7. 建立项目svn仓库:cd /home/username/svn/svnlib;svnadmin create project_demo
  8. 取出一份空svn代码,这是为了方便调用svn hook时svn up用的:cd /home/username/web/;svn co http://domain/svn/project_demo
  9. 为配置apache2调用的hook修改文件归属:sudo chown www-data:www-data -R project_demo
  10. 建立hook文件:sudo vim /home/username/svn/svnlib/project_demo/hooks/post-commit,输入内容:cd /home/username/web/project_demo;svn up
  11. 增加执行权限:sudo chmod +x post-commit
  12. 打完收工
posted @ 2012-10-29 13:41  phpbin  阅读(315)  评论(0编辑  收藏  举报