说明:

SVN(subversion)的运行方式有两种:

一种是基于Apache的http、https网页访问形式,还有一种是基于svnserve的独立服务器模式。

SVN的数据存储方式也有两种:一种是在Berkeley DB数据库中存储数据;另一种是使用普通的文件FSFS存储数据。由于Berkeley DB方式在使用中有可能锁住数据,一般建议使用FSFS方式更安全。

实现目的:

以svnserve的独立服务器模式,使用FSFS数据存储方式源码编译安装配置SVN服务器。

准备篇

一、关闭SELINUX

vi /etc/selinux/config

#SELINUX=enforcing #注释掉

#SELINUXTYPE=targeted #注释掉

SELINUX=disabled #增加

:wq! #保存退出

setenforce 0 #使配置立即生效

二、开启防火墙端口

基于svnserve的独立服务器模式,默认端口为3690

CentOS 7.x默认使用的是firewall作为防火墙,这里改为iptables防火墙。

1、关闭firewall:

systemctl stop firewalld.service #停止firewall

systemctl disable firewalld.service #禁止firewall开机启动

yum remove firewalld # 卸载firewall

2、安装iptables防火墙

yum install iptables-services #安装

vi /etc/sysconfig/iptables #编辑防火墙配置文件

# you can edit this manually or use system-config-firewall

# please do not ask us to add additional ports/services to this default configur

ation

*filter

:INPUT ACCEPT [0:0]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [0:0]

-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

-A INPUT -p icmp -j ACCEPT

-A INPUT -i lo -j ACCEPT

-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

-A INPUT -p tcp -m state --state NEW -m tcp --dport 3690 -j ACCEPT

-A INPUT -j REJECT --reject-with icmp-host-prohibited

-A FORWARD -j REJECT --reject-with icmp-host-prohibited

COMMIT

:wq! #保存退出

systemctl restart iptables.service #最后重启防火墙使配置生效

systemctl enable iptables.service #设置防火墙开机启动

/usr/libexec/iptables/iptables.init restart #重启防火墙

安装篇

1、测试安装环境

#lsb_release –a

#uname –a

2、安装软件

(1)安装软件

# yum -y install subversion

subversion安装在/usr/bin目录 :which svnserve

(2)测试软件是否安装成功

#svnserve --version

3、新建一个目录用于存储SVN所有文件

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

修改/etc/sysconfig/svnserver将默认目录指定到/opt/svn。

OPTIONS="-r /var/svn" =>OPTIONS="-r /opt/svn"

使用svnadmin建立版本库lehuo。

该目录是SVN根目录,后期可以再执行新建版本库的命令用来创建多个项目

#mkdir -p /opt/svn

新建一个版本库,并初始化

#svnadmin create /opt/svn/lehuo

[root@VM_67_242_centos lehuo]# ll

total 24

-rw-r--r-- 1 root root  229 Mar 23 09:45 README.txt

drwxr-xr-x 2 root root 4096 Mar 23 10:19 conf

drwxr-sr-x 6 root root 4096 Mar 23 09:45 db

-r--r--r-- 1 root root    2 Mar 23 09:45 format

drwxr-xr-x 2 root root 4096 Mar 23 09:45 hooks

drwxr-xr-x 2 root root 4096 Mar 23 09:45 locks

4、用户账号权限配置

(1)修改版本库的配置文件

#vim/opt/svn/lehuo/conf/svnserve.conf

[general]

anon-access = none   #使非授权用户无法访问

auth-access = write  #使授权用户有写权限

password-db = passwd #指明密码文件路径

authz-db = authz     #访问控制文件

realm = lehuo #认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字,其它采用默认配置. 各语句都必须顶格写, 左侧不能留空格,等号两边有空格, 否则会出错.

(2)修改允许访问版本库的用户文件

#vim /opt/svn/lehuo/conf/passwd

文件格式如下所示:

[users] //不可省略

chengyuan1 = chengyuan1

chengyuan2 = chengyuan2

test = 123   //用户名密码对,每个用户一行,各语句都必须顶格写, 左侧不能留空格,等号两边有空格

(3)修改用户访问版本库的权限

#vim /opt/svn/lehuo/conf/authz

注意:权限配置文件中出现的用户名必须在passwd文件中有定义过,对权限配置文件authz的修改会立即生效,此配置文件采用“基于路径的授权”策略,中括号里指定路径,以下列出对各用户的授权。还可以对用户分组。

文件格式如下所示:

用户组格式:

[groups]

#user_group_name = username1,username2 //用户间以逗号分割, 组名 = 成员1,成员2

lehuo = chengyuan1,chengyuan2

版本库目录格式:

[test:/project/directory] //版本库:/项目/目录

@user_group_name = permissions //用户组名=权限

username = permissions //用户名=权限

[lehuo:/]

@lehuo = rw  # 配置用户组的权限

test = r         # 配置单个用户的权限

* =

注意:配置项所有的行都必须顶格,否则报错。

[]可以有多种定义/表示对全部的版本库设置权限,oil:/表示对oil版本库设置权限,oil:/www表示对oil中的www项目设置权限,oil:/www/example.com表示对oil中的www项目的example.com目录设置权限。可以用*来表示所有用户。权限可以设置为w,r,wr和空,空表示没有任何权限。

5、SVN服务

启动SVN服务。

#killall svnserve

#systemctl start svnserve.service

#svnserve -d -r /opt/svn/lehuo   # 启动具体的某一个项目

检查服务是否启动成功。

#ps aux | grep svn
root      16349  0.0  0.1
162180   900
?        Ss   15:01   0:00
/usr/bin/svnserve --daemon --pid-file=/run/svnserve/svnserve.pid
-r /opt/svn

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

#netstat -tnlp
Proto Recv-Q Send-Q Local Address          
Foreign Address         State       PID/Program name   
tcp        0      0 0.0.0.0:3690            0.0.0.0:*               LISTEN      16349/svnserve

设置成开机启动。

#systemctl enable
svnserve.service

注意:如果在一台服务器上同时启动多个版本管理,那么启动路径必须是所有项目仓库的根路径

加入开机启动(echo ‘/usr/bin/svnserve -d -r /opt/svn>> /etc/rc.local)

此时SVN服务器配置完成,访问地址为:svn://IP/lehuo

仓库中没有任何文件信息,版本号为0

CentOS 7.2 x64 配置SVN服务器的更多相关文章

  1. CentOS 7下搭建配置SVN服务器

    CentOS 7下搭建配置SVN服务器 1. 安装 CentOS通过yum安装subversion. $ sudo yum install subversion subversion安装在/bin目录 ...

  2. Centos apache + mysql + usvn 配置svn 服务器

    1.遇到问题 提交异常:'svn/!svn/me'path not found http://www.myexception.cn/cvs-svn/1262826.html 更改http.conf 配 ...

  3. CentOS 7下搭建配置 SVN 服务器

    原文链接:https://www.cnblogs.com/tdalcn/p/6937714.html 同步:http://blog.csdn.net/u011884440/article/detail ...

  4. 阿里云服务器centos下安装配置svn服务器

      阿里云服务器centos下安装配置svn服务器 1.安装svn服务器端yum install subversion      从镜像下载安装svn服务器端中间会提示是否ok,输入y,确认安装成功提 ...

  5. CentOS 6.6安装配置LAMP服务器(Apache+PHP5+MySQL)

    准备篇: CentOS 6.6系统安装配置图解教程 http://www.osyunwei.com/archives/8398.html 1.配置防火墙,开启80端口.3306端口 vi /etc/s ...

  6. CentOS 6.5安装配置LNMP服务器(Nginx+PHP+MySQL)

    CentOS 6.5安装配置LNMP服务器(Nginx+PHP+MySQL) 一.准备篇: /etc/init.d/iptables stop #关闭防火墙 关闭SELINUX vi /etc/sel ...

  7. CentOS 6.4安装配置LAMP服务器(Apache+PHP5+MySQL)

    这篇文章主要介绍了CentOS 6.4安装配置LAMP服务器(Apache+PHP5+MySQL)的方法,需要的朋友可以参考下 文章写的不错,很详细:IDO转载自网络: 准备篇: 1.配置防火墙,开启 ...

  8. CentOS 7.0安装配置LAMP服务器(Apache+PHP+MariaDB)

    CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙. 1.关闭firewall: systemctl stop firewalld.service #停止fir ...

  9. 如何配置svn服务器

    如果你已经安装好了VisualServer服务器,现在让我们一起来配置svn服务器吧. 工具/原料 VisualServer 配置VisualServer 找到VisualServer Manager ...

随机推荐

  1. 【翻译自mos文章】在12c数据库中,哪种audit trail 受到支持?

    在12c数据库中,哪种audit trail 受到支持? 来源于:What Audit Trail Types Are Supported For A 12c Database? (文档 ID 198 ...

  2. 2014秋C++ 第8周项目 分支程序设计

    课程主页在http://blog.csdn.net/sxhelijian/article/details/39152703.课程资源在云学堂"贺老师课堂"同步展示,使用的帐号请到课 ...

  3. Android实战简易教程-第四十一枪(显示倒计时的Button-适用于获取验证码)

    近期在做获取验证码的功能.考虑到优良的用户体验,决定制作一个拥有倒计时提示的Button按钮,在网上查了一些资料,非常是简单的就能实现.我写了一个小Demo,大家能够应用到自己的项目中. 一.代码 1 ...

  4. cocos2d-x 3.2 之 2048 —— 第二篇

    ***************************************转载请注明出处:http://blog.csdn.net/lttree************************** ...

  5. C++重载运算符简单总结

    当运算符作用于类类型的运算对象时,可以通过运算符重载重新定义该运算符的含义.明智的使用运算符重载能令我们的程序更易于编写和阅读. 一.基本概念 什么是运算符重载?重载的运算符是具有特殊名字的函数:它们 ...

  6. Android View的onTouch和onClick和onLongClick事件

    这三个事件的调用顺序是: onTouch->onLongClick->onClick 先看这三个事件的处理函数: public boolean onTouch(View v, Motion ...

  7. DataGuard总体结构

    一.DataGuard总体结构 总体目标 1.   描述计划和非计划停机的不同因数 2.   DataGuard的主要组件 3.   物理以及逻辑DataGuard的异同 4.   建立DataGua ...

  8. [Apple开发者帐户帮助]三、创建证书(8)撤销证书

    您可以根据证书类型和角色撤消证书.有关详细信息,请转到撤消权限. 要了解撤销证书时会发生什么,请转到Apple Developer支持中的证书. 所需角色:帐户持有人或管理员. 在“ 证书”,“标识符 ...

  9. set statistics profile on实例

    set statistics profile on实例 1.SQL语句实例   SQL 代码   复制 SET STATISTICS PROFILE ON GO SELECT COUNT(b.[Sal ...

  10. hibernate_03_session详解

    获得session对象有两种方法: 1)openSession 2)getCurrentSession 如果使用的是getCurrentSession需要在hibernate.cfg.xml文件中进行 ...