zoukankan      html  css  js  c++  java
  • CentOS 7.2 x64 配置SVN服务器

    说明:

    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

  • 相关阅读:
    Vista总管注册机
    [更正]谈获取当前系统类型(SP OR PPC)
    [CallerLoc插件]SmsReply For CallerLoc (未接自动回复短信增强版)
    也谈Windows Mobile中打开/关闭WIFI
    C#实现Eval函数功能
    解决DotNetTextBox与window.history冲突!
    Vista单个程序静音带来的麻烦
    快速打开/关闭系统功能开关(CmdSwitch For SP & PPC)
    终于实现打开/关闭飞行模式了
    7.3 Hardware Prefetching 《Speculative Execution in High Performance Computer Architectures》
  • 原文地址:https://www.cnblogs.com/sanduzxcvbnm/p/6631436.html
Copyright © 2011-2022 走看看