欧阳简之 > CentOS7.x 下SVN服务端安装教程

热爱代码,对每一行代码保持一颗敬畏之心。

本教程系统环境:CentOS Linux release 7.3.1611 (Core)

安装

通过yum安装subversion

$ yum -y install subversion

检查一下subversion是否安装成功

$ svnserve --version
svnserve, version 1.7.14 (r1542130) compiled Aug 23 2017, 20:43:38 Copyright (C) 2013 The Apache Software Foundation. This software consists of contributions made by many people; see the NOTICE file for more information. Subversion is open source software, see http://subversion.apache.org/

The following repository back-end (FS) modules are available:

* fs_base : Module for working with a Berkeley DB repository.
* fs_fs : Module for working with a plain file (FSFS) repository.

Cyrus SASL authentication is available.

建立版本库

subversion默认以/var/svn作为数据根目录,可以通过/etc/sysconfig/svnserve修改这个默认位置

$ vi /etc/sysconfig/svnserve
# OPTIONS is used to pass command-line arguments to svnserve.
#
# Specify the repository location in -r parameter:
OPTIONS="-r /data/svn"

使用svnadmin建立版本库web

$ mkdir -p /data/svn
$ svnadmin create /data/svn/web

配置

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

$ vi /data/svn/web/conf/passwd
[users]
admin = admin888  #账号admin,密码admin888
guest = guest666  #账号guest,密码guest666

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

$ vi /data/svn/web/conf/authz
[/]          #SVN目录
admin = rw   #读写权限,r代表读权限,w代表写权限
guest = r    #只读权限
* =          #重要!除了上面提到的那些人之外的其余所有人,没有读写权限

编辑svnserve.conf

$ vi /data/svn/web/conf/svnserve.conf
[general]
anon-access = none     #控制非鉴权用户访问版本库的权限,注意:这里默认是read,需要修改为none,否则日志无法显示
auth-access = write    #控制鉴权用户访问版本库的权限
password-db = passwd   #指定用户名口令文件名
authz-db = authz       #指定权限配置文件名
realm = web            #指定版本库的认证域,即在登录时提示的认证域名称

启动

启动SVN服务

$ systemctl start svnserve.service

检查服务是否启动成功

$ ps aux | grep svnserve
root      7925  0.0  0.0 162200   896 ?        Ss   17:57   0:00 /usr/bin/svnserve --daemon --pid-file=/run/svnserve/svnserve.pid -r /data/svn

设置成开机启动

$ systemctl enable svnserve.service

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

$ sudo netstat -tnlp
tcp        0      0 0.0.0.0:3690            0.0.0.0:*               LISTEN      7925/svnserve

连接

客户端通过TortoriseSVN测试

1.jpg

提示无法链接

2.jpg

测试端口是否开放

$ telnet 116.85.34.193 3690

防火墙开放3690端口

$ firewall-cmd --permanent --add-service=telnet
$ firewall-cmd --permanent --add-port=3690/tcp
$ firewall-cmd --reload

再次测试,成功!

tagged by linux centos svn