centos7 安装svn, 同时支持 svn 和 http访问

时间:2021-08-28 06:58:08

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客户端安装centos7 安装svn, 同时支持 svn 和 http访问 工具,

在目录中,点击 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