centos 配置 svn http访问

1:查看是否安装旧版SVN

rpm -qa subversion 

2:没有安装svn则 通过yum 安装

yum install subversion -y

3:创建svn项目所在根目录

mkdir -p /home/svn

4:创建svn项目要存放的位置

 svnadmin create /home/svn/code

5:创建成功后 /home/svn/code包含conf、db、 format、 hooks、 locks、 README.txt目录或文件

6:配置文件说明

进入 /home/svn/code/conf 目录 

  • authz:权限控制文件
  • passwd:账号密码文件
  • svnserver.conf:SVN 配置文件

7:编辑passwd文件,设置可以访问这个远程仓库的账户密码

vim /home/svn/code/conf/passwd

在【users】节点下添加用户名密码,用户名密码可随意填写,编辑完成后保存退出。

### This file is an example password file for svnserve.
### Its format is similar to that of svnserve.conf. As shown in the
### example below it contains one section labelled [users].
### The name and password for each user follow, one account per line.

[users]
admin = admin

8:编辑authz文件,设置权限控制

vim /home/svn/code/conf/authz

在[groups] 节点下添加组和组成员, “=” 左边是组名,右边是组成员。组内有多个成员时用逗号隔开,例如 group_1 = user1,user2,user3

[groups]
admin_group = admin

[algorithm:/]
@admin_group = rw

9:编辑svnserve.conf文件

vi svnserve.conf

去掉如下几行注释

anon-access=none  #匿名用户不可访问
auth-access=write   #授权用户可写
password-db=passwd #使用那个文件作为账号文件
authz-db=authz          #使用那个文件作为权限文件
realm=/home/svn/code #认证空间名,版本库所在目录

10:svn启动与停止

#启动
svnserve -d -r /home/svn
#停止
killall svnserve

11 启动svn 后便可以使用svn://ip/code 访问code版本库 ,省略svn这个根目录。至此已经使用svn协议访问版本库。

centos 配置 svn http访问

 

 

 12:配置http协议访问

  •  查看httpd是否已经安装svn模块 
ls /etc/httpd/modules/ | grep svn
ls: cannot access /etc/httpd/modules/: No such file or directory
  •  如果没有安装,使用yum安装
yum install mod_dav_svn -y
  •  查看mod_dav_svn是否安装成功
ls /etc/httpd/modules/ | grep svn
mod_authz_svn.so
mod_dav_svn.so
  •   在/etc/httpd/conf.d/文件下创建subversion.conf文件并编辑
<Location /code>  
    DAV svn  
    SVNPath /home/svn/code/                  
    AuthType Basic  
    AuthName "Subversion repos"
    AuthUserFile /home/svn/code/conf/accesspwd
    AuthzSVNAccessFile /home/svn/code/conf/authz
    Require valid-user  
</Location> 

AuthUserFile这个是http协议的访问账户密码文件,后面使用htpasswd命令创建

AuthzSVNAccessFile 权限认证文件,这个跟上面配置svn时候配置的权限设置一样

Require 需要认证用户才可以访问

如果不配置 SVNpath 就要是配置的SVNParentPath 两种配置方式都可以,选择一种即可

第二种配置具体如下所示,只是配置的SVNParentPath的同时要添加SVNListParentPath on, 否则前端会报权限不足,Apache日志会显示“The URI does not contain the name of a repository. [403, #190001]”

<Location /code>  
    DAV svn  
    SVNParentPath /home/svn/  
    SVNListParentPath  on           
    AuthType Basic  
    AuthName "Subversion repos"
    AuthUserFile /home/svn/code/conf/accesspwd
    AuthzSVNAccessFile /home/svn/code/conf/authz
    Require valid-user  
</Location> 

 

13:htpasswd创建账户密码

htpasswd -c -m /home/svn/code/conf/accesspwd username

-c是创建新文件,只有第一次创建账户密码时使用

-m是强制使用MD5加密密码(默认)

accesspwd 是创建的文件名。

username你要创建的可访问用户的名字(如我想创建一个asd用户访问这个svn项目仓库,这个username就是asd)

按提示输入两次密码,我们就创建了一个可访问用户名和密码。

如果想要新增加用户username2(第二次添加用户)

不需要使用-c参数,如果使用的会覆盖原来的accesspwd文件

htpasswd -m /home/svn/code/conf/accesspwd abc

14:重启httpd服务,并使用http协议访问版本库

systemctl restart httpd.service

现在就可以通过 “http://ip/ProjectName” 来访问svn的版本库了

 

centos 配置 svn http访问

上一篇:七、CSS网格


下一篇:Vue项目中使用js-base64