Linux(Centos7.3)搭建svn服务器

一、通过yum命令安装svnserve,命令如下:

yum -y install subversion 此命令会全自动安装svn服务器相关服务和依赖,安装完成会 自动停止命令运行
若需查看svn安装位置,可以用以下命令:
rpm -ql subversion

二、创建版本库目录(此仅为目录,为后面创建版本库提供存放位置)

选择在var路径下创建版本库,当前处于根目录下,一次性创建如下:
mkdir /var/svnrepos

三、创建svn版本库

在第二步建立的路径基础上,创建版本库,命令如下:
svnadmin create /var/svnrepos/xxxx (xxxx为你预期的版本库名称,可自定义)
创建成功后,进入xxxx目录下
cd /var/svnrepos/xxxx 进入目录,可以看见如下文件信息:

total 24
	drwxr-xr-x 2 root root 4096 May  2 13:48 conf
	drwxr-sr-x 6 root root 4096 May  2 13:48 db
	-r--r--r-- 1 root root    2 May  2 13:48 format
	drwxr-xr-x 2 root root 4096 May  2 13:48 hooks
	drwxr-xr-x 2 root root 4096 May  2 13:48 locks
	-rw-r--r-- 1 root root  229 May  2 13:48 README.txt
下面是这些目录的详细讲解

centos搭建stun服务器 centos搭建svn服务器_centos

四、配置修改

进入已经创建好的版本库目录下,也就是前文说创建的xxxx,进入conf
cd /var/svnrepos/xxxx/conf conf目录下,一共存放三份重要的配置文件,如下:

total 12
-rw-r--r-- 1 root root 1080 May  2 13:48 authz
-rw-r--r-- 1 root root  309 May  2 13:48 passwd
-rw-r--r-- 1 root root 3090 May  2 13:48 svnserve.conf

authz:负责账号权限的管理,控制账号是否读写权限

passwd:负责账号和密码的用户名单管理

svnserve.conf:svn服务器配置文件

  1. 编辑 authz 文件(注意:[/]也是必须的)
  2. centos搭建stun服务器 centos搭建svn服务器_版本库_02

  3. [/] 表示根目录,即 /var/svnrepos
    luo = rw 表示用户luo对根目录具有读写权限。
  4. 编辑 passwd 文件
  5. centos搭建stun服务器 centos搭建svn服务器_svn_03

  6. 如上所示,用户名为:luo,认证密码为:luo123456
  7. 编辑 svnserve.conf 文件(注意:配置的前面不能有空格,一定要顶格写)
  8. centos搭建stun服务器 centos搭建svn服务器_svn_04

  9. anon-access = none:表示禁止匿名用户访问。
    auth-access = write:表示授权用户拥有读写权限。
    password-db = passswd:指定用户名口令文件,即 passwd 文件。
    authz-db = authz:指定权限配置文件,即 authz 文件。
    realm = /var/svnrepos:指定认证域,即 /var/svnrepos 目录。
五、防火墙开启

windows虚拟机上的centos7.3在本机直接关闭防火墙
阿里云、腾讯云、华为云等先开启相对应的防火墙端口权限(默认为3690)

查看已开放端口

firewall-cmd --list-all

开放防火墙端口(以3690为例)

firewall-cmd --zone=public --add-port=3690/tcp --permanent

重启防火墙

firewall-cmd --reload

命令含义:

–zone #作用域

–add-port=80/tcp #添加端口,格式为:端口/通讯协议

–permanent #永久生效,没有此参数重启后失效

firewall-cmd --reload 并不中断用户连接,即不丢失状态信息
firewalld的基本使用

启动: systemctl start firewalld
关闭: systemctl stop firewalld
查看状态: systemctl status firewalld
开机禁用 : systemctl disable firewalld
开机启用 : systemctl enable firewalld
systemctl是CentOS7的服务管理工具中主要的工具,它融合之前service和chkconfig的功能于一体。

启动一个服务:systemctl start firewalld.service
关闭一个服务:systemctl stop firewalld.service
重启一个服务:systemctl restart firewalld.service
显示一个服务的状态:systemctl status firewalld.service
在开机时启用一个服务:systemctl enable firewalld.service
在开机时禁用一个服务:systemctl disable firewalld.service
查看服务是否开机启动:systemctl is-enabled firewalld.service
查看已启动的服务列表:systemctl list-unit-files|grep enabled
查看启动失败的服务列表:systemctl --failed
配置firewalld-cmd

查看版本: firewall-cmd --version
查看帮助: firewall-cmd --help
显示状态: firewall-cmd --state
查看所有打开的端口: firewall-cmd --zone=public --list-ports
更新防火墙规则: firewall-cmd --reload
查看区域信息: firewall-cmd --get-active-zones
查看指定接口所属区域: firewall-cmd --get-zone-of-interface=eth0
拒绝所有包:firewall-cmd --panic-on
取消拒绝状态: firewall-cmd --panic-off
查看是否拒绝: firewall-cmd --query-panic
六、启动svn服务器

svnserve -d -r /var/svnrepos

启动成功后,可用ps -aux查看服务启动是否成功

ps -ef | grep 'svnserve'

七、客户端访问svn服务器

在windows客户端,输入地址:svn://ip地址:3690/xxxx (iP地址为你linux的ip,xxxx为前文创建的版本库名称,3690为svn默认端口) ------推荐

弹出输入用户名和密码,输入即可访问

或者在linux服务器输入命令测试:

svn co svn://ip地址:3690/xxxx

关闭SVN 方法:
这里采取linux杀死进程的方式处理的

ps -ef|grep svnserve

root      4967     1  0 Aug23 ?        00:00:00 svnserve -d -r repository/