CentOS7配置svn服务器,通过钩子同步web网站目录(简易教程)

系统环境:腾讯云、CentOS7.3 

1. 安装svn(直接安装svn启动时可能报错缺少apr依赖包)

yum install apr apr-util subversion

2. 查看安装是否成功(svn版本)

svnserve --version

3. 创建svn仓库

mkdir /www/svndata
svnadmin create /www/svndata

4.配置访问权限:

     a.用户密码passwd配置,编辑 /www/svndata/conf/passwd 文件,在[user]节点下加入用户名和密码,这里创建一个用户(website)专门给svn钩子做同步使用:

[users]
# username = password 
website=654321
user1=123456
user2=123456

    b.服务svnserve.conf配置,编辑 /www/svndata/conf/svnserve.conf文件,将[general]节点的对应配置改为:

[general]
#禁止匿名访问
anon-access=none
#使授权用户有写权限
auth-access=write
#密码数据库的路径
password-db=passwd 

5.指定端口启动svn服务。

这里以3888端口为例,对应防火墙和云服务器安全策略需要开放这个端口:

svnserve -d -r /www/svndata --listen-port 3888  

6.从web网站目录检出第一个版本。

cd /www/wwwroot/www.abc.com
svn checkout svn://127.0.0.0:3888 --username website --password 654321

7.配置post-commit(svn钩子)。

    a.创建post-commit,并赋予权限。创建日志记录文件,主要是方便查看最近一条svn记录(记录文件非必要,但有时svn不冲突同步失败时方便解决问题),

cd /www/svndata/hocks
touch post-commit
chown -R 777 post-commit
touch post-commit.log

    b.编辑post-commit: 

        1.必须给予post-commit读写权限

        2.svn update 操作过后,文件所有者可能会变为了root,导致apache用户不能访问,因此需要使用chown -R 修改用户组权限

#!/bin/sh 
#记录日志
LOG_FILE="/www/svndata/hooks/post-commit.log"
>"${LOG_FILE}"
exec &>>${LOG_FILE}
#设置编码
export LANG=zh_CN.UTF-8
#同步更新目录
svn update /www/wwwroot/www.abc.com  --username website --password 654321
#更新权限
chown -R www:www /www/wwwroot/www.abc.com

8.设置svn跟随系统自启动(centos7)

     a.编辑 /etc/sysconfig/svnserve文件,将 OPTIONS="-r /var/svn" 改为 svn 版本库存放的目录,例如:

OPTIONS="-d -r /www/svndata --listen-port 3888  "

    b.启用系统服务:

#设置自启服务
systemctl enable svnserve.service
#启动svn服务
systemctl start svnserve.service
#停用自启服务
systemctl stop svnserve.service

9.其他命令

#杀死所有svn服务进程
killall svnserve
#解决冲突文件
svn resolve --accept working /www/wwwroot/www.abc.com/index.html
#恢复冲突文件
svn revert /www/wwwroot/www.abc.com/index.html
#清理冲突文件
cd /www/wwwroot/www.abc.com/
svn cleanup

10.一句话总结svn钩子同步过程。

    可以理解为程序员提交代码时触发post-commit,在这个post-commit中,我们使用website这个svn账号在网站目录执行了update操作。

本文章是我以前整理的word,借鉴了一些网上的资源,但是已经忘了原出处,抱歉不能一一标明了,还有很多干货也将陆续更新上来。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值