天天看點

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 終止該條程序

繼續閱讀