centOS7.x 下搭建SVN服务器及同步提交发布到线上

版权声明:本文为博主[极客灵徒]原创文章,未经允许不得转载。 https://blog.csdn.net/u012569217/article/details/79584014

centOS7.x下用yum安装搭建svn服务器:

1. 安装SVN服务

$ sudo yum -y install subversion

测试安装是否成功:

$ svnserve --version

2. 建立版本库

创建svn数据目录(subversion默认是把/var/svn作为数据根目录):

$ sudo mkdir -p /var/svn

创建版本库:

$ sudo svnadmin create /var/svn/blog

创建后会生成blog文件夹,并生成版本库conf  db  format  hooks  locks  README.txt目录和文件

3. 配置svn配置文件

$ sudo vim /var/svn/blog/conf/svnserve.conf

编辑示例:
[general]
anon-access = none                #控制非鉴权用户访问版本库的权限
auth-access = write                 #控制鉴权用户访问版本库的权限
password-db = passwd           #指定用户名口令文件名
authz-db = authz                     #指定权限配置文件名

realm = /var/svn/blog                    #指定版本库的认证域,版本库的真实路径

4. 编辑svn用户配置文件

sudo vim /var/svn/blog/conf/passwd
编辑示例:
[users]
admin = admin                #用户,密码
fuhd = fuhd                #用户,密码

test = test                #用户,密码

5. 编辑svn权限控制配置文件
sudo vim /var/svn/blog/conf/authz
编辑示例:
[groups]
admin = admin         #admin为用户组,等号之后的admin为用户
test = fuhd,test

[/]                #表示根目录(/var/svn/blog)
@admin = rw            #表示admin组对根目录有读写权限,r为读,w为写

[/test]         #表示test目录(/var/svn/blog/test)

@test = rw                #表示test组对test目录有读写权限

6. 启动,查看和停止SVN服务
启动SVN服务:
# -d : 守护进程  -r : svn数据根目录 

$ sudo svnserve -d -r /var/svn/blog            #用root权限启动

查看SVN服务:

$ ps aux|grep svnserve               #默认端口为:3690

7. 配置防火墙端口

CentOS7默认防火墙为firewalld。subversion的默认端口为3690,可能还有其他端口需要打开:
$ firewall-cmd --zone=public --add-port=3690/tcp --permanent

$ sudo firewall-cmd --reload

8. 利用svn命令检出项目

$ svn checkout svn://192.168.0.112/blog     #使用 checkout 服务器资源

9. 设置开机启动,注意:/etc/sysconfig/svnserve 配置的数据根目录要是/var/svn

$ sudo systemctl enable svnserve.service    #设置开机启动
$ sudo systemctl start svnserve.service    #启动服务
$ sudo systemctl stop svnserve.service    #停止服务

$ sudo systemctl restart svnserve.service    #重启服务

10. 删除版本库,直接删除版本库目录

$ sudo rm -rf /var/svn/blog

SVN本地提交并同步到线上网站:

1. 进入svn版本库下hooks目录 

$ cd /var/svn/blog/hooks

2. 创建post-commit脚本文件

vim post-commit

内容如下:

#!/bin/sh
export LANG=en_US.utf8
SVN_PATH=/usr/bin/svn
WEB_PATH=/var/www/blog
$SVN_PATH update $WEB_PATH --username 'youusername' --password 'youpasswrod' --no-auth-cache

解释:export LANG 规定字符集,SVN_PATH svn目录,WEB_PATH 网站目录,update更新svn。

注意:前提是网站目录内容是由当前版本库检出。

没有更多推荐了,返回首页

私密
私密原因:
请选择设置私密原因
  • 广告
  • 抄袭
  • 版权
  • 政治
  • 色情
  • 无意义
  • 其他
其他原因:
120
出错啦
系统繁忙,请稍后再试

关闭