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 =
su =
li =
zhao =
root =
启动svn
svnserve -d -r /data/svn/repos/
查看进程,以及端口号
[root@svn conf]# ps -ef | grep svn
root Jul31 ? :: svnserve -d -r /data/svn/repos/
root : pts/ :: grep --color=auto svn[root@svn conf]# netstat -anpt | grep svn
tcp 0.0.0.0: 0.0.0.0:* LISTEN /svnserve
在目录中,点击 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 lihtpasswd -m /data/svn/conf/httppassword suhtpasswd -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