安装
官方安装说明:https://subversion.apache.org/packages.html#centos
配置
- 创建一个svn库文件夹:
mkdir -p /opt/svn/repo/
将该文件夹初始化为SVN库:
svnadmin create /opt/svn/repo/
生成如下目录和文件:
目录:locks
目录:hooks
目录:db
目录:conf
文件:format
文件:README.txt- conf 是配置文件夹
svnserve.conf 是 svn 服务综合配置文件
passwd 是用户名和密码配置文件
authz 是权限配置文件 配置svnserve
vim /opt/svn/repo/conf/svnserve.conf
- anon-access: 对不在授权名单中的用户访问仓库的权限控制,有三个可选性:write、read、none
none 表示没有任何权限
read 表示只有只读权限
write 表示有读写权限 - auth-access:
对在授权名单中的用户访问仓库的权限控制,有三个可选性:write、read、none
none 表示没有任何权限
read 表示只有只读权限
write 表示有读写权限
- anon-access: 对不在授权名单中的用户访问仓库的权限控制,有三个可选性:write、read、none
password-db:用户数据配置文件
authz-db:用户权限配置文件
realm:指定版本库的认证域.
即在登录时提示的认证域名称。若两个版本库的认证域相同,建议使用相同的用户名口令数据文件
当前实例的配置内容:realm = myrepo添加用户
vim /opt/svn/repo/conf/passwd
添加一个格式为:用户名 = 密码设置用户/用户组权限
vim /opt/svn/repo/conf/authz
[groups] 配置
用户组:组名 = 用户1,用户2
使用组权限方式:@组名 = rw
- = 表示除了上面设置的权限用户组以外,其他所有用户都设置空权限,空权限表示禁止访问本目录.
启动服务svnserve -d -r /opt/svn/repo/ --listen-port 3690
-d 表示后台运行
-r /opt/svn/repo/ 表示指定根目录
–listen-port 3690 表示指定端口,默认就是 3690,所以如果要用默认端口这个也是可以省略掉的
停止服务killall svnserve
http服务配置
安装svn驱动模块yum install mod_dav_svn
安装http服务yum install httpd
查看http服务配置,是否监听80端口.vim /etc/httpd/conf/httpd.conf
配置http的用户密码文件.htpasswd -cm /opt/svn/repo/conf/svn-auth-conf admin
该命令,是添加一个用户admin,密码会提示输入.
修改http的用户密码文件htpasswd -m /opt/svn/repo/conf/svn-auth-conf admin
将该密码文件配置到http服务.vim /etc/httpd/conf.modules.d/odules.d/10-subversion.conf
这里的配置,是http模块的配置文件,在之前的http的配置里面其实有说明,http服务启动的时候,会加在该目录下的所有文件.
编辑这个文件:1
2
3
4
5
6
7
8
9
10
11LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
LoadModule dontdothat_module modules/mod_dontdothat.so
DAV svn
SVNPath /opt/svn/repo
#SVNParentPath /home/svn/data
AuthzSVNAccessFile /opt/svn/repo/conf/passwd
AuthType Basic
AuthName "Subversion repos"
AuthUserFile /opt/svn/repo/conf/svn-auth-conf
Require valid-user