LINUX : 搭建SVN服務器


SVN是Subversion的簡稱,是一個開放源代碼的版本控制系統。說得簡單一點SVN就是用於多個人共同開發同一個項目,共用資源的目的。

svn服務器有2種運行方式:獨立服務器和藉助apache運行。兩種方式各有利弊,用戶可以自行選擇

獨立模式安裝svn環境並創建倉庫

  • 安裝Subversion:
yum install -y subversion   //直接安裝

這裏寫圖片描述

  • 檢測是否安裝成功(查看svn版本號)
svnserve --version

這裏寫圖片描述

創建版本庫

    svnadmin命令:這是svn管理員所用的命令,可用svnadmin help 來查詢幫助信息

這裏寫圖片描述

比如要在一個空文件夾下建立SVN庫,  
svnadmin create PATH
svn 命令:這是svn常用的命令,對於提交,修改,刪除等操作都是根據這個命令來完成的。svn help 來查看幫助信息

這裏寫圖片描述

所以現在建立一個project目錄,並生成svn版本庫相關信息

mkdir /var/svn   //先建目錄
cd /var/svn   //進入這個目錄
svnadmin create /var/svn/project   //創建版本庫
cd project   //進入
conf  db  format  hooks  locks  README.txt  //會看到自動生成的版本庫文件

svn服務器搭建成功

創建用戶和組

進入版本庫中的配置目錄conf,此目錄有三個文件: svn服務綜合配置文件(svnserve.conf)、 用戶名口令文件(passwd)、權限配置文件(authz)。
vim authz   //修改權限配置文件:

這裏寫圖片描述

vim passwd //修改用戶信息

這裏寫圖片描述

vim svnserve.conf //配置SVN服務綜合配置文件svnserve.conf
//找到以下配置項,將前面的#號去掉,然後做相應的配置
anon-access = none  //匿名用戶訪問權限:無
auth-access = write     //普通用戶訪問權限:讀、寫
password-db = passwd        //密碼文件
authz-db = authz        //權限配置文件
realm = /var/svn/project    //版本庫所在處

!! 注意:所有以上的配置項都需要頂格,即前面不能預留空格,否則報錯

啓動服務

svnserve -d -r /var/svn   
ps -ef | grep svn

這裏寫圖片描述

測試

svn co svn://[ip]/project  

成功


安裝SVN服務器 和 http

  1. 安裝svn
yum install subversion
  1. 安裝httpd
yum install httpd   //or apache2
  1. 安裝apache的svn操作模塊
yum install mod_dav_svn
配置httpd  進入配置文件夾:cd /etc/httpd/conf/httpd.conf  首先備份配置文件:cp httpd.conf httpd.conf.bak
修改httpd.conf文件  在文件的末尾添加:
    <Location /svn>
            DAV svn
            SVNParentPath  /var/svn/
            # Authentication: Basic
            AuthName "Subversion repository"
            AuthType Basic
            AuthUserFile /etc/httpd/svn-auth.htpasswd

            # Authorization: Authenticated users only
            <LimitExcept GET PROPFIND OPTIONS REPORT>
                Require valid-user
            </LimitExcept>
    </Location>

說明

“<Location /svn>”中的”/svn”表示我們的svn的訪問URL爲”http://ip/svn”,
        “DAV svn”表示使用”mod_dav_svn”模塊,dav是一種http 1.1擴展協議,mod_dav_svn只是該協議的一種應用。
        “SVNParentPath  /var/svn”表示服務”http://ip/svn”請求時,使用”/var/svn”路徑下相應的內容。
        AuthName 表示輸入用戶名和密碼時的提示信息
        AuthType 認證類型,這裏我們使用基本的認證類型
        AuthUserFile 表示認證文件的位置,我們待會創建它。
        LimitExcept節點指示只對寫請求需要用戶認證。
  • 創建svn-auth.htppasswd文件
htpasswd –c -m /etc/httpd/svn-auth.htpasswd test //創建test 用戶名
  • 將apache用戶對svn目錄授權
usermod  -a  -G   root   apache
chmod   -R  g+w  /home/svn/project
groups   apache
  • 重啓apache
systemctl  restart  httpd
  • http訪問
http://[IP]:[PORT]/svn/project/

!! 在這裏很可能會遇到selinux 的策略限制,可以關掉

  • 關閉SELINUX
vi /etc/selinux/config
#SELINUX=enforcing #註釋掉
#SELINUXTYPE=targeted #註釋掉
SELINUX=disabled #增加
:wq! #保存退出
setenforce 0 #使配置立即生效

參考文章:

發佈了33 篇原創文章 · 獲贊 10 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章