1. 程式人生 > >CentOS搭建SVN伺服器,並通過Apache HTTP方式訪問(轉載至上品物語)

CentOS搭建SVN伺服器,並通過Apache HTTP方式訪問(轉載至上品物語)

摘要:本文主要講述了在centos 6.5環境下搭建svn伺服器,可通過svn:\\IP方式訪問。同時由於部分公司內網埠限制,並不能訪問外網的svn伺服器,所以特地結合了apache伺服器,使得可以通過http方式http://IP方式訪問svn伺服器。

環境準備:

centos版本:centos 6.5 64位

CentOS配置SVN伺服器:

1、檢查是否安裝了低版本的SVN

1

rpm -qa subversion

2、解除安裝舊版本SVN

yum remove subversion

3、安裝SVN

yum -y install subversion

4、建立SVN版本庫

mkdir -p /home/用“使用者名稱”替代/svn
svnadmin create /home/用“使用者名稱”替代/svn

此處版本庫名為svn,也可以是其它

5、配置程式碼庫

進入“/home/用“使用者名稱”替代/svn”資料夾下的conf下,進行配置

5.1、使用者密碼配置

編輯passwd,在[users]下新增使用者名稱和密碼

[users]
# harry = harryssecret
# sally = sallyssecret
root=password

5.2、編輯控制權限authz

目的是設定哪些使用者可以訪問哪些目錄,向authz檔案追加以下內容,包括一個組project_p,組下有一個使用者root。使root使用者對svn上所有專案擁有讀寫許可權:

[groups] 
project_p = root
[/]
root=rw

若只希望某個使用者對 某個專案有讀、寫、讀寫許可權,可如下設定:

[/Project]
root=r

5.3、服務svnserve.conf配置

在[general]下追加如下內容

複製程式碼

#匿名訪問的許可權,可以是read,write,none,預設為read
anon-access=none
#使授權使用者有寫許可權 
auth-access=write
#密碼資料庫的路徑 
password-db=passwd
#訪問控制檔案 
authz-db=authz
#認證名稱空間,subversion會在認證提示裡顯示,並且作為憑證快取的關鍵字 
realm=/home/用“使用者名稱”替代/svn

複製程式碼

6、啟動SVN

svnserve -d -r /home/用“使用者名稱”替代/svn

7、檢視SVN程序

ps -ef|grep svn|grep -v grep

8、檢測SVN埠

netstat -ln |grep 3690

9、停止重啟SVN

killall svnserve    //停止 
svnserve -d -r /home/用“使用者名稱”替代/svn  // 啟動

10、測試

Windows客戶端TortoiseSVN連線。地址為:svn://IP地址,輸入配置好的使用者名稱和密碼。即可進行測試。

11、檢出svn到指定目錄

進入需要檢出的目標目錄,執行

svn checkout svn://IP/Project

配置Apache支援HTTP方式訪問

1、如果沒有安裝apache服務,那麼安裝apache服務及對svn的支援

#apache伺服器,讓我們的svn 伺服器支援http協議訪問,而不僅是svn://協議
yum install httpd
#apache操作svn模組
yum install mod_dav_sv

2、修改配置檔案/etc/httpd/conf.d/subversion.conf(沒有則新建),內容為:

複製程式碼

LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so
 
<Location /svn>
    DAV svn
    SVNListParentPath on
    SVNPath /home/"使用者名稱"/svn
    AuthType Basic
    Satisfy Any
    AuthName "Subversion repos"
    AuthUserFile /home/"使用者名稱"/svn/conf/accesspwd
    AuthzSVNAccessFile /home/"使用者名稱"/svn/conf/authz
    Require valid-user
</Location>

複製程式碼

3、建立accesspwd 檔案

htpasswd   -c -m /home/"使用者名稱"/svn/conf/accesspwd root

4、讓apache使用者對”/home/“使用者名稱“/svn″目錄擁有寫許可權。

#將使用者apache加入root組
usermod -a -G root apache
#讓group對/home/"使用者名稱"/svn目錄也有寫許可權
chmod -R g+w /home/"使用者名稱"/svn
#檢視apache使用者屬於的組
groups apache

5、開啟httpd服務

service httpd restart

現在就可以通過”http://ip/svn″來訪問我們的svn 伺服器了