Subversion是一個非常優秀的原始程式碼控制控制系統,它的支援獨立啟動使用和結合Apache使用兩種服務方式。 一、安裝Subversion 1.從 Subversion首頁 下載最新版本的安裝程式 2.如果是Windows平台,直接運行Exe的安裝程式即可 3.如果是一般的Linux平台: 1)執行 tar -zxvf subversion.xxx.tar.gz進行解壓 2)執行cd subversion.xxx切換到解壓後的目錄 3)執行./configure --prefix=/opt/subversion進行配置設定,並指明安裝目錄 4)執行make進行編譯 5)執行make install 進行安裝 4.如果是Fedora Linux,可以直接執行yum install subversion進行自動安裝( Fedora7以上的版本已內建) 5.如果是Ubuntu Linux,可以直接執行sudo apt-get install subversion進行自動安裝 二、安裝Apache 1.從 Apache首頁 下載最新版本的安裝程式 2.如果是Windows平台,直接運行安裝程式 3.如果是一般的Linux平台: 1)執行tar -zxvf httpd.xxx.tar.gz進行解壓 2)執行cd httpd.xxx切換到解壓後的目錄 3)執行./configure --prefix=/opt/httpd進行配置設定,並指明安裝目錄 4)執行make進行編譯 5)執行make install 進行安裝 4.如果是Fedora Linux,可以直接執行yum install httpd進行自動安裝( Fedora7以上的版本已內建) 5.如果是Ubuntu Linux,可以直接執行sudo apt-get install apache2進行自動安裝 三、建立資料倉儲 1.執行mkdir /var/gftech/subversion/repos建立資料倉儲的目錄 2.執行svnadmin create /var/gftech/subversion/repos建立資料倉儲,將自動產生幾個檔案和目錄: /conf /db /hooks ... 四、獨立啟動方式 獨立啟動方式是做為一個單獨的服務程式,預設情況下通過本地連接埠3690來對外提供服務。 啟動步驟: 1.執行svnserve -d -r /var/gftech/subversion/repos以Daemon方式運行,預設情況下匿名訪問 2.在Fedora中,可以用chkconfig把Subversion做一個服務程式,隨系統自動啟動: 1)以root帳號登入 2)執行cd /etc/rc.d/init.d切換到服務程式所在目錄 3)執行vi svnd進行檔案編輯 4)添加下面的內容到svnd檔案當中: 5)儲存退出 6)執行chmod a+x svnd 使之可執行 7)執行chkconfig --add svnd添加該服務到系統當中 8)執行chkconfig --list svnd查看該服務 9)執行service svnd start可以啟動該服務 10)執行service svnd stop可以停止該服務 在進行原始程式碼控制時,為了安全起見,需要對使用者的許可權進行控制,主要通過三個設定檔來實 現,svnservice.conf、passwd、authz,第一個檔案指明是否需要進行存取控制以及第二、三個檔案的位置,第二個檔案存放使用者帳號 資訊,第三個檔案存放使用者的存取權限,具體配置如下: 1.開啟svnserve.conf檔案,把auth-access=write前面的#號去掉,使受權使用者可以進行寫操作 2.把password-db=passwd前面的#號去掉,表明密碼檔案為目前的目錄下的passwd檔案 3.把auth-db=authz前面的#號去掉,表明使用者存取權限檔案為目前的目錄下的authz檔案 4.開啟passwd檔案,在末行添加需要的帳號,比如:test=123456 5.開啟authz檔案,在[/]一行下面添加test=rw,表明資料倉儲的根目錄下的所有目錄,test都可進行讀寫操作 6.再添加一行*=r,表明其他帳號可以進行唯讀操作 7.在該檔案中還可以為使用者分組,添加到[groups]下面,比如:admin=sinboy,others=u1,u2 8.還可以對根目錄下的子目錄進行具體的許可權控制,只需要添加相應目錄,比如: [/web] u1=rw *= 表明web子目錄只允許u1帳號進行讀寫操作,禁止其他帳號訪問 它的缺點是: 1.對外提供服務時,有可能受到防火牆的阻隔,造成服務無法訪問 2.並且它的密碼檔案是明文顯示,沒有進行MD5加密,存在安全隱患 3.只能啟動一個資料倉儲,如果想要建立多個資料倉儲,必須啟動多個svnserve服務進程 五、結合Apache方式 結合Apache使用的方式,克服了svnserve方式的缺點,使用者可以直接通過瀏覽器瀏覽原始碼,還可以對瀏覽器訪問進行SSL加密控制,更好的提高安全性 1.Apache本身不支援SVN,需要先安裝mod_dav_svn模組 2.在Fedora下,執行yum install mod_dav_svn進行自動安裝 3.確保/etc/httpd/moudles目錄下有mod_dav_svn.so和mod_authz_svn.so 4.開啟/etc/httpd/conf/httpd.conf檔案,在 LoadModule dav_module modules/mod_dav.so
一行下面添加下面兩行內容: LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
5.再添加如下內容: <Location /svn>
DAV svn
SVNPath /var/gftech/subversion/repos
AuthzSVNAccessFile /var/gftech/subversion/repos/conf/access.auth
Satisfy Any
Require valid-user
AuthType Basic
AuthName "Subversion repositories"
AuthUserFile /var/gftech/subversion/repos/conf/users.auth
Require valid-user
</Location> 6.切換到/var/gftech/subversion/repos/conf目錄下 7.執行htpasswd -cb users.auth test 123456建立帳號檔案 8.再次添加使用者,去掉參數c即可:htpasswd -b users.auth test2 123456 9.執行service httpd restart啟動Apache 10.在瀏覽器中輸入http://host/svn開啟SVN倉庫,輸入使用者名稱密碼進行訪問 六、SVN用戶端 推薦使用TortoiseSVN 七、其他文章推薦 1.Apache和Subversion整合安裝與配置