天天看点

linux svn服务器搭建 centos 搭建svn服务器

本文是在CentOS中采用yum安装方式。优点:简单,一键安装,不用手动配置环境变量等。缺点:安装位置为yum默认,比如我们公司服务器上安装软件有自己的规定,一般会采用压缩包安装。

以下是我在CentOS7.2(阿里云服务器)下部署方式,安装步骤如下:

whereis svn 查看svn安装目录

一、yum安装subversion

    1. 安装subversion yum install subversion

    2. 查看安装版本,检查安装是否成功 svnserve --version  ,我装的版本为  1.7.14

    3. 查看安装位置  rpm -ql subversion

二、创建版本库

    1、建立SVN根目录 

        mkdir /data/svn

    2、新建版本库:TestCode 

        svnadmin create /data/svn/TestCode

        注:执行完后,/data/svn/TestCode目录下文件说明

        README.txt   版本库的说明文件

        conf              配置文件件夹(后续操作最多的文件夹)

        db                SVN数据文件文件夹

        format          当前版本库的版本号

        hooks           SVN的钩子脚本文件夹

        locks            SVN的文件锁相关的文件夹

三、修改配置 进入conf目录(该svn版本库配置文件)

    authz文件是权限控制文件

    passwd是帐号密码文件

    svnserve.conf SVN服务配置文件

    1、设置帐号密码

        vi passwd     在[users]块中添加用户和密码,格式:帐号=密码,如 czyczy=czyczy

linux svn服务器搭建 centos 搭建svn服务器

    2、设置权限

        vi authz

linux svn服务器搭建 centos 搭建svn服务器

        在末尾添加如下代码:

        [groups]

        admin = czyczy

        [/]

        admin=rw

        意思是版本库的根目录对其有读写权限,w只有读权限。

    3、修改svnserve.conf文件

        vi svnserve.conf

        打开下面的几个注释:

        anon-access = read #匿名用户可读

        auth-access = write #授权用户可写

        password-db = passwd #使用哪个文件作为账号文件

        authz-db = authz #使用哪个文件作为权限文件

        realm = /var/svn/svnrepos # 认证空间名,版本库所在目录

linux svn服务器搭建 centos 搭建svn服务器

四、启动svn版本库

    svnserve -d -r /data/svn/TestCode

    配置防火墙

    不一定每个人都需要设置,可以先测试后再看是否需要打开端口

    # vi /etc/sysconfig/iptables

    添加一下内容:

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

    保存后重启防火墙

    # service iptables restart

    或者关闭防火墙

    1. 永久性生效

    开启:chkconfig iptables on

    关闭:chkconfig iptables off

    2. 即时生效,重启后失效

    开启:service iptables start

    关闭:service iptables stop

五、linux/unix下svn自动更新

    1.找到svn的所在目录:

    我的目录在/usr/local/svn/myproject

    2.新建post-commit 

    vim hooks/post-commit

    #!/bin/sh

    REPOS="$1"

    REV="$2"

    export +%Y-%m-%d %H:%M:%S"` >> $LOG_PATH

    echo `whoami`,$REPOS,$REV >> $LOG_PATH

    $SVN_PATH/svn update $WEB_PATH --username $SVN_USER --password $SVN_PASS --no-auth-cache >>     $LOG_PATH

    exit 0

    3.给post-commit文件设置权限

        首先检查代码中是否有可执行命令 #!/bin/sh

        然后 检查post-commit权限

        post-commit 脚本文件的权限不对,post-commit 脚本必须有 +x 权限。

        chown svn:svn post-commit

        chmod +x post-commit

    配置完成后重新启动

查看svn是否启动

 ps -ef|grep svnserve

linux svn服务器搭建 centos 搭建svn服务器

kill -9 24872 终止该条进程

继续阅读