配置svn支持http协议访问

场景描述
已搭建svn服务器,但是不支持http协议,而Axure的团队项目空间类型为svn时,需要给出基于http或https的地址(svn开头的地址总是提示无法创建相应目录),因此为已部署的svn服务增加http访问方式

环境信息
OS:centos7
仓库根目录:/mnt/svn
已有仓库:/mnt/svn/repo

目标
新建仓库/mnt/svn/apsprototype,并为该仓库配置http访问方式

安装过程
1、安装所需的包

yum install -y httpd subversion mod_dav_svn

2、创建新的svn仓库

cd /mnt/svn/
svnadmin create apsprototype
chown -R apache:apache apsprototype


【说明】因为后续的httpd服务的用户默认为apache,而httpd服务需要读取仓库下的内容,因此这里修改用户属组,操作系统可以无apache用户。
执行上述命令后,在/mnt/svn/目录下多了apsprototype目录,并且该目录下包含了仓库的相关配置文件。

3、创建apsprototype仓库的用户并设置权限

cd /mnt/svn/apsprototype/conf

编辑svnserve.conf文件,取消如下行前的注释并改成相应的值:

anon-access = none
auth-access = write
password-db = passwd
authz-db = authz

将默认的passwd文件改名,创建htpasswd格式的用户名密码文件passwd

mv passwd passwd.default
htpasswd -cm passwd zetyun  (其中-c应该是表示创建passwd文件)
htpasswd -m passwd aps

修改authz文件,配置用户和组对仓库下各目录的访问权限,文件内容示例如下:

[groups]
apsprototype = zetyun,aps    这里是定义一个组及其用户
[/]
@apsprototype = rw        为一个组指定相关权限

4、配置httpd

cd /etc/httpd/conf.d
touch svn.conf

示例内容如下所示:


   DAV svn
   #SVNParentPath /var/lib/svn
   SVNPath /mnt/svn/apsprototype
   # Limit write permission to list of valid users.
   #
      # Require SSL connection for password protection.
      # SSLRequireSSL

      AuthType Basic
      AuthName "Authorization Realm"
      AuthUserFile /mnt/svn/apsprototype/conf/passwd
      AuthzSVNAccessFile /mnt/svn/apsprototype/conf/authz
      Satisfy all
      Require valid-user
   #

~      

    

【说明】
Location 后的/apsprototype是最后访问的URL的端口后的部分
SVNParentPath 指定为要访问的仓库的Path
5、开启httpd服务

systemctl enable httpd
systemctl start httpd

【说明:httpd的默认端口为80,由于被占用,修改/etc/httpd/conf/httpd.conf文件中Listen参数的值,如 修改为8080】

6、其它
因为是内部关键,所以关闭了防火墙和SELinux,否则需要进行端口放通等设置。

7、参考

https://blog.csdn.net/huzhenwei/article/details/80229309

你可能感兴趣的:(工具)