1. 程式人生 > >搭建SVN+APACHE服務器

搭建SVN+APACHE服務器

inf 正常 dir 訪問 管理員 access comm egrep data

  1. 項目需求

    根據開發需求,建立svn環境,同時建立source、bd分支,source分支所有人都能訪問,bd分支管理員kazihuo可訪問。同時,在此基礎上構建apache,以便於相關人員能通過瀏覽器訪問分支信息,權限配置同svn!

  2. SVN部分

    服務安裝

    [root@KAZIHUO]# yum -y install subversion

    [root@KAZIHUO]# rpm -qa subversion

    subversion-1.6.11-15.el6_7.x86_64

    [root@KAZIHUO]# mkdir -pv /svn/svndata #創建svn數據存儲目錄

    [root@KAZIHUO]# mkdir -pv /svn/svnpasswd #創建配置文件信息目錄

    [root@KAZIHUO]# svnserve -d -r /svn/svndata/ #啟動svn

    [root@KAZIHUO]# ss -atunpl|grep 3690

    tcp LISTEN 0 7 *:3690 *:* users:(("svnserve",27241,3))

    [root@KAZIHUO]# svnadmin create /svn/svndata/source #創建名為source項目版本庫

    [root@KAZIHUO /svn/svndata/source/conf]# cp svnserve.conf svnserve.conf.default #備份配置文件

    [root@KAZIHUO /svn/svndata/source/conf]# egrep -v "^$|#" svnserve.conf

    [general]

    anon-access = none

    auth-access = write

    password-db = /svn/svnpasswd/passwd

    authz-db = /svn/svnpasswd/authz

    [root@KAZIHUO /svn/svndata/source/conf]# cp -p authz passwd /svn/svnpasswd/

    [root@KAZIHUO /svn/svnpasswd]# chmod 700 authz passwd

    [root@KAZIHUO /svn/svnpasswd]# egrep -v "^$|#" passwd

    [users]

    kazihuo = kazihuo8 #用戶名 = 密碼

    caorj = wanda1518

    [root@KAZIHUO /svn/svnpasswd]# egrep -v "^$|#" authz

    [groups]

    developer = kazihuo,caorj # = 成員1,成員2

    [source:/] #項目版本庫路徑

    @developer = rw #組權限

    # pgrep svn|xargs kill -9

    # svnserve -d -r /svn/svndata/

    # svn --username=kazihuo co svn://10.1.64.79/source #linux登陸驗證

    ?

    說明:bd分支按照source分支方式創建,此處不做贅述!

    ?

    WINDOWS客戶端功能驗證

    # 下載安裝客戶端

    https://www.baidu.com/link?url=QnPN_ey02ffBcODO681B_K8X3jlGVr_pau30mo3hVHhkaSGVw-Fn0Og71zKz68WXbJQPDZgjnyOnrjQ_M47Yp1tpL0wFPermkFt0IVdpu-S&wd=&eqid=d7f4b33b00005f4d000000045af00580

    # 新建文件夾test並進入,點擊鼠標右鍵配置svn

    技術分享圖片

    # Export directory項路徑後默認沒有\source,請手動添加

    技術分享圖片

    ?

  3. APACHE部分

    [root@KAZIHUO]# yum install httpd -y

    [root@KAZIHUO]# yum install mod_dav_svn

    # apache訪問svn的模塊,安裝成功後會生成mod_dav_svn.so和mod_authz_svn.so兩個文件,在/usr/lib64/httpd/modules/目錄下。

    [root@KAZIHUO]# chown -R apache.apache /svn/svndata/

    [root@KAZIHUO]# htpasswd -bc /svn/svndata/passwd kazihuo kazihuo8

    [root@KAZIHUO]# htpasswd -b /svn/svndata/passwd caorj wanda1518

    [root@JKY-APP2 /svn/svndata]# cat passwd

    kazihuo:J/ZmB9qn5kMi.

    caorj:5slMRhKPxwqYk

    [root@JKY-APP2 /svn/svndata]# cat authz

    [source:/]

    kazihuo = rw

    * = r

    ?

    [bd:/]

    kazihuo = rw

    [root@KAZIHUO /etc/httpd/conf.d]# cp subversion.conf subversion.conf.defaults

    [root@KAZIHUO /etc/httpd/conf.d]# cat subversion.conf|egrep -v "#|^$"

    LoadModule dav_svn_module modules/mod_dav_svn.so

    LoadModule authz_svn_module modules/mod_authz_svn.so

    <Location /svn>

    DAV svn

    SVNParentPath /svn/svndata/

    AuthType Basic

    AuthName "Authorization SVN"

    AuthzSVNAccessFile /svn/svndata/authz

    AuthUserFile /svn/svndata/passwd

    Require valid-user

    </Location>

    [root@KAZIHUO]# systemctl start httpd.service

    ?

    功能驗證

    # 兩個用戶賬號都能正常登陸並訪問source,同時訪問時出現的信息都是事先通過svn客戶端commit的文件及目錄

    技術分享圖片

    技術分享圖片

    ?

    # bd只有kazihuo賬號訪問成功,caorj訪問時禁止

    技術分享圖片

搭建SVN+APACHE服務器