场景描述
已搭建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