centos7搭建svn服务器并支持http方式访问

时间:2022-01-14 16:55:32

因为公司其他人员需要,需要在服务器上搭建svn服务,途中遇到不少问题,做下记录

第一步,安装svn

默认centos7是已经安装了svn即subversion

检查是否安装

rpm -qa subversion

没有安装的可以通过

yum install subversion

第二步,创建svn版本库

mkdir /home/svn

svnadmin create /home/svn/test

此处库名为test可以根据需要替换

第三步,配置代码库

3.1用户密码配置

vim /home/svn/test/conf/passwd

[users]
# harry = harryssecret
# sally = sallyssecret
用户名=密码
admin=test

3.2权限控制配置

vim /home/svn/test/conf/authz

最后一行插入
[/]
admin=rw
[groups]
project_p = admin

可以根据需要配置其他的组

3.3服务配置

vim /home/svn/test/conf/svnserve.conf

在[general]下插入

#匿名访问的权限,可以是read,write,none,默认为read
anon-access=none
#使授权用户有写权限
auth-access=write
#密码数据库的路径
password-db=passwd
#访问控制文件
authz-db=authz

第四步,编辑svnserver配置文件

vim /etc/sysconfig/svnserve

OPTIONS="-r /home/svn"

默认实在/var/svn的位置

第五步,启动svn

systemctl start svnserve

netstat -tulnp

查看3690端口是否开放

ps aux|grep svn

查看服务是否开启

测试

svn://ip

输入用户名密码

有可能会遇到selinux阻挡了文件访问

setenforce 0

看下是否成功连接

如果是,就是selinux搞的鬼

cat /var/log/message

查看里面selinux中提供的帮助,照着其中做即可

最后setenforce 1恢复selinux

配置apache支持http方式访问

第一步,先安装apache以及apache对svn的支持

yum install httpd

yum install mod_dav_svn

第二步,修改配置文件

vim /etc/httpd/conf.d/subversion.conf

LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so <Location /svn/test>
DAV svn
SVNListParentPath on
SVNPath /home/svn/test
AuthType Basic
Satisfy Any
AuthName "Subversion repos"
AuthUserFile /home/svn/test/conf/accesspwd
AuthzSVNAccessFile /home/svn/test/conf/authz
Require valid-user
</Location>

第三步,创建accesspwd文件

htpasswd -c -m /home/svn/test/conf/accesspwd admin

接着输入密码

第四步,修改库的拥有者为apache

chown -R apache /home/svn/

第五步,开启httpd服务

systemctl start httpd

到这里连接可以成功,但是上传有可能失败,可能是selinux的问题,也是

cat /var/log/message根据建议修改即可