天天看點

centos7 安裝svn, 同時支援 svn 和 http通路

1. 安裝 svn

[root@svn conf]#yum install subversion

      

 [root@svn conf]# svn --version

  svn, version 1.7.14 (r1542130)

  compiled Apr 11 2018, 02:40:28

2.建立倉庫

#建立倉庫目錄
[root@svn ~]# mkdir -p /data/svn/repos/
[root@svn ~]# cd  /data/svn/repos/

#建立svn倉庫(建立3個倉庫)
[root@svn repos]# svnadmin create base
[root@svn repos]# svnadmin create HIP
[root@svn repos]# svnadmin create remote


檢視
[root@svn repos]# ls
base  HIP  remote      

4. 修改倉庫的配置檔案

由于使用了多個版本倉庫,是以使用者密碼和權限控制 單獨提出來。

修改base的配置檔案

[general]
anon-access=none
auth-access=write
#執行/data/svn/conf/目錄下認證授權
password-db=/data/svn/conf/passwd
authz-db=/data/svn/conf/authz
#認證命名空間 指向本地版本倉庫
realm=base

#有時候 不彈出來輸入的使用者名 密碼,需要注釋 auth-db,登入後,在修改回來重新開機。      
修改HIP的配置檔案

[general]
anon-access=none
auth-access=write
#執行/data/svn/conf/目錄下認證授權
password-db=/data/svn/conf/passwd
authz-db=/data/svn/conf/authz
#認證命名空間 指向本地版本倉庫
realm=HIP

#有時候 不彈出來輸入的使用者名 密碼,需要注釋 auth-db,登入後,在修改回來重新開機。      
修改remote的配置檔案

[general]
anon-access=none
auth-access=write
#執行/data/svn/conf/目錄下認證授權
password-db=/data/svn/conf/passwd
authz-db=/data/svn/conf/authz
#認證命名空間,指向本地
realm=remote

#有時候 不彈出來輸入的使用者名 密碼,需要注釋 auth-db,登入後,在修改回來重新開機。      

5. 建立 認證目錄,進行權限配置。

[root@svn ~]# mkdir /data/svn/conf/
#拷貝其中一個版本倉庫的 passwd,和 authz
[root@svn ~]#  cp /data/svn/repos/base/conf/{passwd,authz} /data/svn/conf/      

6. 權限配置

vim /data/svn/conf/authz

[aliases]
# joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average

#建立了多個組,對項目路徑進行授權
[groups]
admin = feng
java = su,zhao
backup = li
root = root

[/]
@root = rw

[remote:/]
@java = rw

[HIP:/]
@admin = rw

[base:/]
@backup = rw      
vim  /data/svn/conf/passwd

[users]
feng = 123456
su = 123456
li = 123456
zhao = 123456
root = 123456      

啟動svn

svnserve -d -r /data/svn/repos/      

檢視程序,以及端口号

[root@svn conf]# ps -ef | grep svn
root      4374     1  0 Jul31 ?        00:00:00 svnserve -d -r /data/svn/repos/
root      4515  2775  0 00:06 pts/1    00:00:00 grep --color=auto svn

[root@svn conf]# netstat -anpt | grep svn
tcp        0      0 0.0.0.0:3690            0.0.0.0:*               LISTEN      4374/svnserve       

windows用戶端安裝

centos7 安裝svn, 同時支援 svn 和 http通路

 工具,

在目錄中,點選 svn 檢出  。。。。 輸入 :svn://172.16.230.168/HIP

 7 配置Apache支援HTTP通路

yum install -y httpd mod_dav_svn      

安裝成功後,會有mod_dav_svn.so和mod_authz_svn.so兩個檔案

# cd /etc/httpd/modules
# ls | grep svn
mod_authz_svn.so
mod_dav_svn.so      

8.修改配置檔案/etc/httpd/conf.d/subversion.conf(沒有則建立)

[root@svn conf]# vim /etc/httpd/conf.d/subversion.conf 

<Location /svn>
    DAV svn
    SVNParentPath /data/svn/repos
    AuthType Basic
    AuthName "Authorization SVN"
    AuthzSVNAccessFile /data/svn/conf/authz
    AuthUserFile /data/svn/conf/httppassword
    Require valid-user
</Location>      

 <Location /svn>  表示我們的svn 通路URL為 http://172.16.230.168/svn/xxxx

DAV 表示使用 mode_dav_svn 子產品

SVNParentPath  表示路徑

AuthName 表示輸入使用者名和密碼時的提示資訊

AuthType 認證類型 這裡我們使用基本的認證類型

AuthUserFile 表示認證檔案的位置

9. 設定http通路權限 /data/svn/conf/httppassword 使用者名和密碼相同

# -c 第一次建立 使用-c
htpasswd -c /data/svn/conf/httppassword feng

#第二次建立 使用-m
htpasswd -m /data/svn/conf/httppassword li

htpasswd -m /data/svn/conf/httppassword su

htpasswd -m /data/svn/conf/httppassword zhao      

10. 對版本倉庫授予 apache:apache 權限,保證http 可以上傳

[root@svn repos]# chown apache.apache HIP -R
[root@svn repos]# chown apache.apache base -R
[root@svn repos]# chown apache.apache remote -R

[root@svn repos]# chmod -R 777 HIP base  remote
http需要
授予777權限      

11 重新開機 httpd

systemctl restart httpd      

12 通路 測試

http://172.16.230.168/svn/base/

如果輸入使用者名 密碼錯誤,需要清空浏覽器緩存,重新重新整理。

繼續閱讀