Linux(CentOS7)下SVN仓库搭建Hook钩子设计和客户端常用操作

更新(2021.01.17)

该部分是按照博客中安装php、nginx而配套使用,详情请翻看php、nginx环境搭建

安装 Svn

yum -y install subversion* 

创建 html 目录

 mkdir -p /usr/local/svn/html 

创建 html 仓库

 svnadmin create /usr/local/svn/html 

设置 html 仓库账户安全

1)创建 svn 账号

cd /usr/local/svn/html/conf/ 
vim authz  

##文件末尾新增 该仓库下svn的读写权限
[/] 
svn=rw 

2)设置 svn 密码

 vim passwd  
 
##文件末尾新增该仓库的svn密码
svn=123456 

3)设置 svn 权限
1、关闭svn可读权限
2、开启svn可写权限
3、使用svn密码
4、使用权限
5、指定仓库目录

 vim svnserve.conf 
 
anon-access = none  
auth-access = write 
 password-db = passwd  
 authz-db = authz  
 realm = /usr/local/svn/html 

在这里插入图片描述

启动 svn 服务

svnserve -dr /usr/local/svn/html 

pstree |grep svn

设置 html 提交更新到 html 网站根目录的钩子脚本

cd /usr/local/svn/html/hooks 
cp post-commit.tmpl post-commit 
chmod a+x post-commit 
 
vim post-commit 
# 最后一行新增两行  删除前边的部分代码  mailer.py
export LANG=en_US.UTF-8  
svn up --non-interactive --username svn --password 123456 '/usr/local/nginx/html' 

cd /usr/local/nginx/html/ 

# 剪出cut out   输入Linux密码 再输入svn账号和密码  以及是否加密 yes
svn co svn://127.0.0.1 ./ 

svn add ./* 
svn ci -m '提交版本'

安装svn客户端与拉取远程仓库代码

下载客户端安装包与中文语言包
SVN官网下载地址

剪出代码:
在这里插入图片描述
在这里插入图片描述

重新设置nginx对web目录的执行权限

getfacl /usr/local/nginx/html
setfacl -m u:nginx:rwx -R /usr/local/nginx/
setfacl -m d:nginx:rwx -R /usr/local/nginx/

设置开机启动

 vim /etc/rc.local 
 
svnserve -dr /usr/local/svn/html 

配置svn热加载

vim /usr/local/svn/html/hooks/post-commit

#post-commit文件末尾加入下边两段
/usr/local/task/nginx/setfacl.sh
/usr/local/task/php/laravel/reload.sh

#重启svn服务
pkill svnserve
 svnserve -dr /usr/local/svn/html

--------------------------------------------分割线-----------------------------------------------------------

安装 svn

yum -y install subversion

创建 liuyuanshan 目录

mkdir -p /var/svn/liuyuanshan

创建 yzmedu 仓库

svnadmin create /var/svn/liuyuanshan

在这里插入图片描述
在这里插入图片描述

配置修改

进入已经创建好的版本库目录下

cd /var/svn/liuyuanshan/conf

conf目录下,一共存放三份重要的配置文件,如下:
在这里插入图片描述
authz:负责账号权限的管理,控制账号是否读写权限
passwd:负责账号和密码的用户名单管理
svnserve.conf:svn服务器配置文件

  1. 编辑 authz 文件(注意:[/]也是必须的)
vi authz 
[/] 
liuyuanshan=rw

在这里插入图片描述
[/]:表示根目录,即 /var/svn/liuyuanshan
liuyuanshan= rw:表示用户liuyuanshan对根目录具有读写权

  1. 编辑 passwd 文件
    在这里插入图片描述如上所示,用户名为:liuyuanshan,认证密码为:123

  2. 编辑 svnserve.conf 文件(注意:配置的前面不能有空格,一定要顶格写)
    在这里插入图片描述anon-access = none:表示禁止匿名用户访问。
    auth-access = write:表示授权用户拥有读写权限。
    password-db = passswd:指定用户名口令文件,即 passwd 文件。
    authz-db = authz:指定权限配置文件,即 authz 文件。
    realm = /var/svn/liuyuanshan:指定认证域,即/var/svn/liuyuanshan 目录。

启动SVN仓库/var/svn/liuyuanshan

启用liuyuasnhan仓库并查看启用状态

svnserve -dr /var/svn/liuyuanshan
ps -ef | grep 'svnserve'

在这里插入图片描述

查看开启的SVN进程和端口

这时候记得在阿里云或腾讯云开启SVN默认3690端口

pstree |grep svn
netstat -tunpl |grep svn

SVN检出

在这里插入图片描述

Hook钩子,设置 m 仓库提交更新到 m 网站根目录的钩子脚本

  1. 在 wechat 网站目录下检出 liuyuanshan 仓库版本
cd /usr/local/nginx/html/bbs/wechat
svn co svn://111.231.66.101 ./

在这里插入图片描述检出成功
在这里插入图片描述

将liuyuanshan仓库文件同步到web目录下

cd /var/svn/liuyuanshan/hooks
cp post-commit.tmpl post-commit
chmod a+x post-commit

复制脚本,并赋予读写执行权限
在这里插入图片描述编辑post-commit脚本文件

vi post-commit
export LANG=en_US.UTF-8 
svn up --non-interactive --username liuyuanshan --password 123 '/usr/local/nginx/html/bbs/wechat'

在这里插入图片描述

测试文件是否上传至仓库同时同时同步到WEB目录下

在这里插入图片描述在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值