1、安装SVN服务端
yum install subversion
2、创建版本库
svnadmin create /home/myrepos #这里的文件目录自己随便设置
3、配置svnserve
上述版本库/home/myrepos建立后在文件夹下会生成hooks、locks、format、conf四个文件夹
目录用途说明:
hooks目录:放置hook脚本文件的目录
locks目录:用来放置subversion的db锁文件和db_logs锁文件的目录,用来追踪存取文件库的客户端
format文件:是一个文本文件,里面只放了一个整数,表示当前文件库配置的版本号
conf目录:是这个仓库的配置文件(仓库的用户访问账号、权限等),包含3个文件:authz、passwd、svnserve.conf
文件用途说明:
authz文件:用户权限配置文件。
passwd:用户名密码配置文件。
svnserve.conf:Svn主配置文件。
3.1、svnserve.conf修改以下几个部分:
anon-access = none #不允许匿名访问
auth-access = write #允许写入
password-db = passwd #指向验证用户名密码的数据文件 passwd
authz-db = authz #指向验证用户的权限配置文件 authz
3.2、passwd修改以下内容:
[users]
chen = 123456 #用户名 = 密码, 等号表示关联关系
3.3、authz修改以下几个部分:
[groups]
admin = chen #群组 admin 包含账号chen
[/]
@admin = rw #群组 admin 有读写权限
* = #以上没有定义的用户都没有任何权限
格式说明:
版本库目录格式:
[<版本库>:/项目/目录]
@<用户组名> = <权限>
<用户名> = <权限>
/ 表示对根目录(即/svn/project目录)下的所有子目录范围设置权限;
[/abc] 表示对资料库中abc项目设置权限;
创建一个admin组,组成员只包括chen
admin组对目录有读写权限;
*=表示除了上面设置的权限用户组以外,其他所有用户都设置空权限,空权限表示禁止访问本目录,这很重要一定要加上。
注意:对权限配置文件的修改立即生效,不必重启svn。
4、开启端口
CentOS 7 默认没有使用iptables,所以通过编辑iptables的配置文件来开启80端口是不可以的
CentOS 7 采用了 firewalld 防火墙,Svn默认使用3690端口,如要查询端口是否开启,使用以下命令:
firewall-cmd --query-port=3690/tcp --permanent
如果端口未开,使用下面的命令开启端口:
firewall-cmd --add-port=3690/tcp --permanent
开启端口后,可以重新加载防火墙:
firewall-cmd --reload
5、启动svnserve:
svnserve -d -r /home/myrepos/