centos7 安装svn, 同时支持 svn 和 http访问
1. 安装 svn
[root@svn conf]#yum install subversion
[root@svn conf]# svn --version
svn, version 1.7.14 (r1542130)
compiled Apr 11 2018, 02:40:28
2.创建仓库
#创建仓库目录 [root@svn ~]# mkdir -p /data/svn/repos/ [root@svn ~]# cd /data/svn/repos/ #创建svn仓库(创建3个仓库) [root@svn repos]# svnadmin create base [root@svn repos]# svnadmin create HIP [root@svn repos]# svnadmin create remote 查看 [root@svn repos]# ls base HIP remote
4. 修改仓库的配置文件
由于使用了多个版本仓库,所以用户密码和权限控制 单独提出来。
修改base的配置文件 [general] anon-access=none auth-access=write #执行/data/svn/conf/目录下认证授权 password-db=/data/svn/conf/passwd authz-db=/data/svn/conf/authz #认证命名空间 指向本地版本仓库 realm=base #有时候 不弹出来输入的用户名 密码,需要注释 auth-db,登录后,在修改回来重启。
修改HIP的配置文件 [general] anon-access=none auth-access=write #执行/data/svn/conf/目录下认证授权 password-db=/data/svn/conf/passwd authz-db=/data/svn/conf/authz #认证命名空间 指向本地版本仓库 realm=HIP #有时候 不弹出来输入的用户名 密码,需要注释 auth-db,登录后,在修改回来重启。
修改remote的配置文件 [general] anon-access=none auth-access=write #执行/data/svn/conf/目录下认证授权 password-db=/data/svn/conf/passwd authz-db=/data/svn/conf/authz #认证命名空间,指向本地 realm=remote #有时候 不弹出来输入的用户名 密码,需要注释 auth-db,登录后,在修改回来重启。
5. 建立 认证目录,进行权限配置。
[root@svn ~]# mkdir /data/svn/conf/ #拷贝其中一个版本仓库的 passwd,和 authz [root@svn ~]# cp /data/svn/repos/base/conf/{passwd,authz} /data/svn/conf/
6. 权限配置
vim /data/svn/conf/authz [aliases] # joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average
#建立了多个组,对项目路径进行授权 [groups] admin = feng java = su,zhao backup = li root = root [/] @root = rw [remote:/] @java = rw [HIP:/] @admin = rw [base:/] @backup = rw
vim /data/svn/conf/passwd [users] feng = 123456 su = 123456 li = 123456 zhao = 123456 root = 123456
启动svn
svnserve -d -r /data/svn/repos/
查看进程,以及端口号
[root@svn conf]# ps -ef | grep svn root 4374 1 0 Jul31 ? 00:00:00 svnserve -d -r /data/svn/repos/ root 4515 2775 0 00:06 pts/1 00:00:00 grep --color=auto svn [root@svn conf]# netstat -anpt | grep svn tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN 4374/svnserve
windows客户端安装 工具,
在目录中,点击 svn 检出 。。。。 输入 :svn://172.16.230.168/HIP
7 配置Apache支持HTTP访问
yum install -y httpd mod_dav_svn
安装成功后,会有mod_dav_svn.so和mod_authz_svn.so两个文件
# cd /etc/httpd/modules # ls | grep svn mod_authz_svn.so mod_dav_svn.so
8.修改配置文件/etc/httpd/conf.d/subversion.conf(没有则新建)
[root@svn conf]# vim /etc/httpd/conf.d/subversion.conf <Location /svn> DAV svn SVNParentPath /data/svn/repos AuthType Basic AuthName "Authorization SVN" AuthzSVNAccessFile /data/svn/conf/authz AuthUserFile /data/svn/conf/httppassword Require valid-user </Location>
<Location /svn> 表示我们的svn 访问URL为 http://172.16.230.168/svn/xxxx
DAV 表示使用 mode_dav_svn 模块
SVNParentPath 表示路径
AuthName 表示输入用户名和密码时的提示信息
AuthType 认证类型 这里我们使用基本的认证类型
AuthUserFile 表示认证文件的位置
9. 设置http访问权限 /data/svn/conf/httppassword 用户名和密码相同
# -c 第一次创建 使用-c htpasswd -c /data/svn/conf/httppassword feng #第二次创建 使用-m htpasswd -m /data/svn/conf/httppassword li htpasswd -m /data/svn/conf/httppassword su htpasswd -m /data/svn/conf/httppassword zhao
10. 对版本仓库授予 apache:apache 权限,保证http 可以上传
[root@svn repos]# chown apache.apache HIP -R [root@svn repos]# chown apache.apache base -R [root@svn repos]# chown apache.apache remote -R
[root@svn repos]# chmod -R 777 HIP base remote
http需要
授予777权限
11 重启 httpd
systemctl restart httpd
12 访问 测试
http://172.16.230.168/svn/base/
如果输入用户名 密码错误,需要清空浏览器缓存,重新刷新。
注释: 如果只支持http,那么就把 版本仓库中conf/svnserve.conf 中 password-db=/data/svn/conf/httppassword