CentOS7下搭建配置SVN服务器

1、通过yum安装subversion,根据提示完成安装

<span style="color:#333333"><span style="background-color:#f5f5f5">sudo yum install subversion</span></span>


subversion安装在/bin目录

<span style="color:#333333"><span style="background-color:#f5f5f5">which svnserve</span></span>

image.png


检查subversion是否安装成功

<span style="color:#333333"><span style="background-color:#f5f5f5">svnserve --version</span></span>

image.png


2、建立版本库(subversion默认以/var/svn作为数据根目录,可以通过/etc/sysconfig/svnserve修改这个默认位置)

<span style="color:#333333"><span style="background-color:#f5f5f5">systemctl cat svnserve.service</span></span>

image.png


修改/etc/sysconfig/svnserver将默认目录指定到/opt/svn(使用默认值也可以,后面几步的路径保持一致即可)

<span style="color:#333333"><span style="background-color:#f5f5f5">vim /etc/sysconfig/svnserve</span></span>

image.png


3、使用svnadmin建立版本库code

<span style="color:#333333"><span style="background-color:#f5f5f5">sudo mkdir -p /opt/svn</span></span>
<span style="color:#333333"><span style="background-color:#f5f5f5">sudo svnadmin create /opt/svn/code</span></span>


版本库code创建成功后,我们看一下/opt/svn/code目录下现在有哪些文件:

image.png


创建用户,编辑用户文件passwd,新增两个用户:admin和guest

<span style="color:#333333"><span style="background-color:#f5f5f5">vim /opt/svn/code/conf/passwd</span></span>

image.png


编辑权限文件authz,用户admin设置可读写权限,guest设置只读权限

<span style="color:#333333"><span style="background-color:#f5f5f5">vim /opt/svn/code/conf/authz</span></span>

image.png


编辑svnserve.conf文件,增加以下配置信息:

<span style="color:#333333"><span style="background-color:#f5f5f5">vim /opt/svn/code/conf/svnserve.conf</span></span>

image.png

<span style="color:#333333"><span style="background-color:#f5f5f5">anon-access = none                     #控制非鉴权用户访问版本库的权限
auth-access = write                    #控制鉴权用户访问版本库的权限
password-db = passwd                   #指定用户名口令文件名
authz-db = authz                       #指定权限配置文件名
realm = spring-hello-world             #指定版本库的认证域,即在登录时提示的认证域名称</span></span>


4、启动SVN服务

<span style="color:#333333"><span style="background-color:#f5f5f5">sudo systemctl start svnserve.service</span></span>


检查服务是否启动成功

<span style="color:#333333"><span style="background-color:#f5f5f5">ps aux | grep svn</span></span>

image.png


通过netstat可以看到SVN打开了3690端口

<span style="color:#333333"><span style="background-color:#f5f5f5">sudo netstat -tnlp</span></span>

image.png


设置成开机启动,完成

<span style="color:#333333"><span style="background-color:#f5f5f5">sudo systemctl enable svnserve.service</span></span>

image.png

通过客户端访问下面的svn地址即可:

<span style="color:#333333"><span style="background-color:#f5f5f5">svn://admin@ip-address/svn/code</span></span>


客户端出现无法连接SVN服务器的解决方案:


绝大部分是因为防火墙的原因导致,如果是阿里云等服务器,需要检查服务器的安全组策略中的3690端口是否打开


通过systemctl检查服务器的防火墙配置:

<span style="color:#333333"><span style="background-color:#f5f5f5">firewall-cmd --list-all</span></span>


如果提示"FirewallD is not running",说明防火墙没有开启,可以通过 systemctl start firewalld 开启防火墙,再通过 firewall-cmd --list-all 检查服务器的防火墙配置,结果显示:

<span style="color:#333333"><span style="background-color:#f5f5f5">public (default, active)
  interfaces: eno16777736 eno33554984
  sources: 
  services: dhcpv6-client ssh
  ports: 
  masquerade: no
  forward-ports: 
  icmp-blocks: 
  rich rules:</span></span>


可以看到,没有3690端口,我们在防火墙中增加3690端口:

<span style="color:#333333"><span style="background-color:#f5f5f5">sudo firewall-cmd --permanent --add-port=3690/tcp</span></span>
<span style="color:#333333"><span style="background-color:#f5f5f5">sudo firewall-cmd --reload</span></span>

连接客户端可能会出现:No repository found in 'svn://***.***.***.***/code'

输入命令: 

<span style="color:#333333"><span style="background-color:#f5f5f5">svnserve -d -r /opt/svn/code</span></span>

会出现:

<span style="color:#333333"><span style="background-color:#f5f5f5">svnserve: Can't bind server socket: Address already in use</span></span>

解决办法:

输入命令:

<span style="color:#333333"><span style="background-color:#f5f5f5">killall  svnserve</span></span>

这个命令是将 svn 相关的服务进程全部杀掉,也就是停止 SVN 服务,然后再执行下面的命令启动版本库code进程

<span style="color:#333333"><span style="background-color:#f5f5f5">svnserve -d -r /opt/svn/code</span></span>

如果要启动所有版本库的进程,可以通过下面的命令启动

<span style="color:#333333"><span style="background-color:#f5f5f5">sudo systemctl start svnserve.service</span></span>


通过客户端连接SVN服务器,已经可以正常连接了:

image.png

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

余十步

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值