系统环境:centos7.6
第一步:通过yum命令安装svnserve,命令如下:
yum -y install subversion
此命令会全自动安装svn服务器相关服务和依赖,安装完成会自动停止命令运行
若需查看svn安装位置,可以用以下命令:
rpm -ql subversion
第二步:创建版本库目录(此仅为目录,为后面创建版本库提供存放位置)
svndata:为存放svn仓库的位置,可以在里面创建多个仓库。
svnpassword:为svndata下所有仓库的统一访问账号密码,以及权限文件。
mkdir -p /application/svndata mkdir -p /application/svnpassword
第三步:创建svn版本库
在第二步建立的路径基础上,创建版本库,命令如下:
svnadmin create /application/svndata/springboot
springboot为你预期的版本库名称,可自定义)
创建成功后,进入springboot目录下
cd /application/svndata/springboot
进入目录,可以看见如下文件信息:
total 24 drwxr-xr-x 2 root root 4096 May 2 13:48 conf drwxr-sr-x 6 root root 4096 May 2 13:48 db -r--r--r-- 1 root root 2 May 2 13:48 format drwxr-xr-x 2 root root 4096 May 2 13:48 hooks drwxr-xr-x 2 root root 4096 May 2 13:48 locks -rw-r--r-- 1 root root 229 May 2 13:48 README.txt
第四步:配置修改
进入已经创建好的版本库目录下
cd /application/svndata/springbooot/conf
conf目录下,一共存放三份重要的配置文件,如下:
total 12 -rw-r--r-- 1 root root 1080 May 2 13:48 authz -rw-r--r-- 1 root root 309 May 2 13:48 passwd -rw-r--r-- 1 root root 3090 May 2 13:48 svnserve.conf
authz:负责账号权限的管理,控制账号是否读写权限
passwd:负责账号和密码的用户名单管理
svnserve.conf:svn服务器配置文件
我们可以把authz,passwd这两份文件单独拷贝出来到application/svnpassword目录下,这样我们创建多个svn仓库的时候可以使用同一份账号和密码,方便管理。
1.编辑svnpassword/authz 文件(注意:[/]也是必须的)
[groups] # harry_and_sally = harry,sally # harry_sally_and_joe = harry,sally,&joe #创建java组,组里有两个用户 java=lq,wyt #这两个用户对springboot-aop有读写的权限 [springboot-aop:/] lq=rw wyt=rw #这两个用户对sadoc有读写的权限 [sadoc:/] #表示java组里面的用户对sadoc这个库有读写的权限 @java=rw [springboot:/] @java=rw [/] #所有的用户对所有的项目都有读的权限 [/foo/bar] * = r
2.编辑 passwd 文件,添加两个用户
如上所示,用户名为:lq,认证密码为:123456
3.编辑 /application/svndata/springboot/conf/svnserve.conf 文件(注意:配置的前面不能有空格,一定要顶格写)
anon-access = none:表示禁止匿名用户访问。
auth-access = write:表示授权用户拥有读写权限。
password-db :指定用户名口令文件,即 passwd 文件。
authz-db :指定权限配置文件,即 authz 文件。
realm :指定认证域,即 /application/svndata目录。
第五步:防火墙开启,开放端口
多数情况下服务器安装完成,配置完成后,无法连接svn服务器,均是防火墙问题【注意:如果是阿里云,腾讯云的服务器,还需在安全组添加端口开启规则】
开放端口,svn默认的端口是3690
firewall-cmd --zone=public --add-port=3690/tcp --permanent 返回success为成功 命令含义: --zone #作用域 --add-port=80/tcp #添加端口,格式为:端口/通讯协议 --permanent #永久生效 重启防火墙: systemctl restart firewalld.service 关闭防火墙: systemctl stop firewalld.service 查看监听(Listen)的端口 netstat -lntp 检查端口被哪个进程占用 netstat -lnp|grep 3690
六:启动svn服务器
svnserve -d -r /application/svndata
启动成功后,可用ps -aux查看服务启动是否成功
ps -ef | grep 'svnserve'
七:客户端访问svn服务器
下载TortoiseSVN客户端使用
弹出输入用户名和密码,输入即可访问
如下为例子:
遇到的问题小结:
问题1:执行svn命令:svn co svn://ip地址:3690/xxxx报错如下
修改svnserve.conf时,打开注释时,配置的前面有空格,应该顶格写。修改后即可
问题2:输入账号密码后,提示 svn: Authorization failed解决办法
把authz 文件 [/] 改为 [\] 试试