centos7安装并配置svn
一、安装
1. 通过 yum install subversion来安装
2. 查看svn版本 使用: svnserve --version
3. 创建svn版本库
使用命令: svnadmin create svn/repo
svnadmin create /home/svn/tnkg
4. 配置svn信息
进入版本库中的配置目录conf,此目录有三个文件: svn服务综合配置文件(svnserve.conf)、 用户名口令文件(passwd)、权限配置文件(authz)
svnserve.conf
authz
passwd
5. 起用
svnserve -d -r /home/svn/
二、设置权限
需求:添加一个用户组other,该用户组的用户只可以访问仓库根目录下的app文件夹,即/app。
authz 配置
注意[/app]这块,格式一定要是这样的,不要写成[/:app],[app:/]等等之类的,网上有很多种说法,我试了都不行,只有[/app]才可以。
*的意思是指除了当前已指定的用户组之外groups中其它的用户组,[/app]下面的*是指user和admin。
在小乌龟里访问路径是这样的svn://ip/root/app,假设你的svn仓库是/home/svn/tnkg,这里app所在位置是/home/svn/tnkg/app。
三、http 配置
3.1 安装 mod_dav_svn
yum install mod_dav_svn
3.2 编辑subversion.conf
在/etc/httpd/conf.d/下创建subversion.conf文件,添加以下内容
<Location /svn>DAV svn
SVNListParentPath on
SVNParentPath /home/svn
AuthType Basic
AuthName "Authorization"
AuthUserFile /etc/httpd/svn.auth/svn_passwd
AuthzSVNAccessFile /home/svn/tnkg/conf/authz
Require valid-user
</Location>
注:svn_passwd与svn中的密码是不一样的,通过http登录采用的是httpd服务器自己的校验机制,用户密码得自己重新添加:
htpasswd -bc svn_passwd cgl cgl #创建svn_passwd文件,并添加用户cgl,密码为cgl 再添加用户的时候执行 htpasswd -n svn_passwd cgl2 cgl2 #把用户cgl2密码为cgl2添加到已存在的密码文件(svn_passwd)中3.3 设置权限
chmod -R 777 /home/svn/tnkg 使httpd拥有对svn仓库所有的权限,要不会报如下错误:
3.4 重启httpd.service
systemctl restart httpd.service
这时候应该可以正常访问,上传下载了。