前言:
svn目前是比較流行的檔案版本配置工具,對于開發,運維,測試都很有幫助,是技術人員必須要掌握的軟體工具之一,下面就svn安裝配置和使用,記錄下學習過程。
一 安裝封包件
需要準備下面安裝包,如果不準備,可以使用yum源安裝,下面我使用源碼編譯安裝
apr-1.5.2.tar.gz
apr-util-1.5.4.tar.gz
httpd-2.4.23.tar.gz
subversion-1.9.4.tar.gz
1.1 安裝apr
tar -xvzf apr-1.5.2.tar.gz
cd apr-1.5.2
./configure --prefix=/opt/apr
make
make install
1.2 安裝apr-util
tar -xzvf apr-util-1.5.4.tar.gz
cd apr-util-1.5.4
./configure --prefix=/opt/apr-util --with-apr=/opt/apr
1.3 安裝httpd
tar -xvzf httpd-2.4.23.tar.gz
cd httpd-2.4.23
./configure --prefix=/opt/apache2.4.23 --enable-dav --enable-so --with-apr=/opt/apr --with-apr-util=/opt/apr-util
1.4 安裝subversion
tar -xzvf subversion-1.9.4.tar.gz
cd subversion-1.9.4
./configure --prefix=/opt/subversion --with-apr-util=/opt/apr-util --with-apxs=/opt/apache2.4.23/bin/apxs
二 修改配置資訊
2.1 建立使用者svn
useradd svn
2.2 修改httpd配置
vi /opt/apache2.4.23/conf/httpd.conf
User svn
Group svn
# svn config
Include conf/extra/httpd-svn.conf
2.3 修改httpd-svn.conf配置檔案
修改httpd的svn配置資訊,增加下面子產品和配置,一遍用于啟動http管理svn
[root@localhost svn]# cat /opt/apache2.4.23/conf/extra/httpd-svn.conf
LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
<Location /svn>
DAV svn
SVNParentPath /datasvn
AuthType Basic
AuthName "Subversion repository"
AuthUserFile /opt/subversion/conf/auth.conf
#指定的是SVN通路帳号檔案
Require valid-user
AuthzSVNAccessFile /opt/subversion/conf/svnaccess.conf
#指定的是SVN的通路控制檔案
</Location>
2.4 建立使用者
[root@localhost svn]# /opt/apache2.4.23/bin/htpasswd -m /opt/subversion/conf/auth.conf zhangsan
New password:
Re-type new password:
Adding password for user zhangsan
[root@localhost svn
2.5 建立版本庫
mkdir /datasvn
mkdir /datasvn/test
/opt/subversion/bin/svnadmin create /datasvn/test
chown svn /datasvn/ -R
2.6 配置用戶端通路
啟動指令:
/opt/subversion/bin/svnserve -d -r /datasvn --log-file /svn/svn1.log
2.7 配置權限檔案
[root@localhost svn]# cat /opt/subversion/conf/svnaccess.conf
[groups]
dev=chenwei
[/]
@dev=rw
[root@localhost svn]#
2.8 啟動服務
/opt/apache2.4.23/bin/apachectl start
三 測試
通路位址:http://192.168.100.253/svn/test
四 實際案例
下面部門員工能夠讀寫通路自己部門檔案夾和隻讀公共目錄
技術部 ---》 ITIL it001 it002
市場部 -----> market mak001 mak002
銷售部 ---》 sales sales001 sales002
公共目錄 ---》 common
4.1 svn配置
/opt/subversion/bin/svnadmin create /datasvn/ITIL
/opt/subversion/bin/svnadmin create /datasvn/market
/opt/subversion/bin/svnadmin create /datasvn/saltes
/opt/subversion/bin/svnadmin create /datasvn/common
授予相應的目錄權限
chown -R svn /datasvn/*
4.2添加使用者
/opt/apache2.4.23/bin/htpasswd -mb /opt/subversion/conf/auth.conf it001 it001
/opt/apache2.4.23/bin/htpasswd -mb /opt/subversion/conf/auth.conf it002 it002
/opt/apache2.4.23/bin/htpasswd -mb /opt/subversion/conf/auth.conf mak001 mak001
/opt/apache2.4.23/bin/htpasswd -mb /opt/subversion/conf/auth.conf mak002 mak002
/opt/apache2.4.23/bin/htpasswd -mb /opt/subversion/conf/auth.conf sales001 sales001
/opt/apache2.4.23/bin/htpasswd -mb /opt/subversion/conf/auth.conf sales002 sales002
檢查是否已經添加成功:
[root@localhost datasvn]# cat /opt/subversion/conf/auth.conf
chenwei:$apr1$RccWqRlt$bEgPhHOUIpUJ6C03bnikQ0
zhangsan:$apr1$1oEk5gdL$qgjG9dSdY9vglbroGzPjZ.
it001:$apr1$qLwiTGsS$DD4c12k34YNR.QjeqqeEO/
it002:$apr1$3ipOmpPM$noAfmlxHeWwx5/m5u19ij0
mak001:$apr1$O9oQAJYr$.oAMEFZ/PcHhYgYjGi.Ya1
mak002:$apr1$/gVAHKsB$qkRd25cPOs.3LvA0RW6iA0
sales001:$apr1$o6OW/xtG$0O2uKG8OHGk9QNdK0bmlp0
sales002:$apr1$8eiO7rdV$dViqMIXfNOswszyJpZgZY.
上傳檔案到svn目錄中
4.4 設定通路權限
定義權限,設定組,使用者,寫,讀權限
[root@localhost conf]# cat /opt/subversion/conf/svnaccess.conf
itil=it001,it002
market=mak001,mak002
sales=sales001,sales002
common=itil,market,sales
[ITIL:/]
@itil=rw
[market:/]
@market=rw
[sales:/]
@sales=rw
[common:/]
*=r
[root@localhost conf]#
4.5 驗證
浏覽器驗證:
<a href="http://s3.51cto.com/wyfs02/M01/00/B3/wKiom1mb86TSIjfgAAAZbXdMJK0516.png" target="_blank"></a>
市場部是無法通路的:
<a href="http://s3.51cto.com/wyfs02/M02/00/B3/wKiom1mb86Wyk64kAABcz1SSLQA859.png" target="_blank"></a>
本文轉自 woshiwei201 51CTO部落格,原文連結:http://blog.51cto.com/chenwei/1958398