centos7下svn伺服器搭建並配置http

wenwenxiong發表於2017-08-02
SVN伺服器的搭建
1、安裝SVN伺服器
# yum install mod_dav_svn subversion
2、檢視SVN伺服器是否安裝成功
# ls /etc/httpd/modules/ | grep svn  
mod_authz_svn.so  
mod_dav_svn.so  

# svn --version(檢視SVN版本資訊)
svn, version 1.7.14 (r1542130)
...
3、建立SVN資源庫目錄
# mkdir -p /svn_repos
4、建立SVN資源庫專案
# mkdir -p /svn_repos/project_1
# svnadmin create /svn_repos/project_1

在/svn_repos/project_1目錄下會生成以下配置檔案

[root@localhost project_1]# ls
conf  db  format  hooks  locks  README.txt
conf
  |-authz檔案是許可權控制檔案  
  |-passwd是帳號密碼檔案  
  |-svnserve.conf SVN服務配置檔案 
5、修改配置檔案
# vim /svn_repos/project_1/conf/svnserve.conf 進行如下配置

[general]
# 非鑑權使用者沒有許可權
anon-access = none
# 鑑權使用者有寫許可權
auth-access = write
# 指定使用者名稱口令檔名
password-db = passwd
# 指定許可權配置檔名
authz-db = authz

# vim /svn_repos/project_1/conf/passwd 進行如下配置

passwd:
[users]
# 配置了一個使用者 使用者名稱為admin密碼為admin
admin=admin

# vim /svn_repos/project_1/conf/authz 進行如下配置

authz:
[groups]
[/]
# 為admin使用者配置讀寫許可權
admin = rw
6、啟動SVNServer服務
# svnserver -d -r /svn_repos

使用svn co svn://localhost/projetc_1,測試是否正常

7、建立http服務訪問svn伺服器

安裝httpd

# yum install httpd httpd-devel  
# service httpd start  
# chkconfig httpd on  

# vi /etc/httpd/conf/httpd.conf   
找到 ServerName 並修改成 ServerName localhost:80  

禁用firewalld和selinux,否則會出現http訪問錯誤

<D:error>  
<C:error/>  
<m:human-readable errcode="13">Could not open the requested SVN filesystem</m:human-readable>  
</D:error>

修改httpd配置檔案

httpd的預設的配置檔案為/etc/httpd/conf/httpd.conf  

1.先備份一下,防止改錯  
cp httpd.conf httpd.conf.bak  

2.修改  
找到檔案的'LoadModule'  
在該附近載入mod_dav和mod_dav_svn模組的配置:  
LoadModule dav_module modules/mod_dav.so  
LoadModule dav_svn_module modules/mod_dav_svn.so  
3.在  /etc/httpd/conf.d下建立project1_svn.conf配置檔案加入以下內容
<Location /project_1>  
    DAV svn  
    SVNParentPath  /svn_repos/project_1
    # 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 /projetc_1>中的"/project_1"表示我們的svn的訪問URL為"http://ip/project_1"  
DAV svn表示使用"mod_dav_svn"模組 dav是一種http 1.1擴充套件協議 mod_dav_svn只是該協議的一種應用  
SVNParentPath /svn_repos/project_1表示服務"http://ip/project_1"請求時 使用"/svn_repos/project_1"路徑下相應的內容
<以下內容可以不加>
AuthName 表示輸入使用者名稱和密碼時的提示資訊  
AuthType 認證型別 這裡我們使用基本的認證型別  
AuthUserFile 表示認證檔案的位置 我們待會建立它  
LimitExcept 節點指示只對寫請求需要使用者認證  

4.建立svn-auth.htpasswd 檔案
htpasswd -c -m /etc/httpd/svn-auth.htpasswd root  

按提示輸入兩次密碼,我們就建立了一個'root'  

重啟Apache訪問Http服務

# service httpd restart  

現在就可以通過”http://ip/project_1“ 來訪問我們的svn伺服器project_1專案庫了
如果想建立多個專案,可以根據上面步驟新建一個

相關文章