Apache SVN配置專家在線講堂
本節向大家介紹一下Apache SVN配置手記,SVN經過長時間的發展,現在有不少用戶已經了解SVN配置問題了,這里我發表一下個人理解,和大家討論討論Apache SVN配置,歡迎大家一起來學習。
上午進行了Apache SVN配置,使得用http://的方式也可以訪問我的subversion服務了。
總體來說,配置比較簡單,先安裝Apachehttpserver,down了一下2.0.58的msi版本。安裝后打開安裝目錄下的/modules目錄,發現庫很全,特別是webdav需要的mod_dav.so在,好了,apache安裝結束。同事的2.0.54版本里/modules下面so庫沒有幾個,建議他重新安裝2.0.58版。
原理如下,利用apache服務訪問svn服務器,在apache服務啟動時,加載svn啟動庫,客戶就可以通過webdav的方式訪問了。svn啟動時需要必須加載的庫是mod_dav_svn.so,如果需要對訪問的repository進行用戶和目錄的權限設置,則需要mod_authz_svn.so庫。這兩個庫都在%subversion%/bin目錄下,先把這兩個文件拷入到%apache%/modules目錄下。
物理文件準備完畢,修改%apache%/conf/下面的httpd.conf文件。可以看到
#LoadModuledav_modulemodules/mod_dav.so
也就是說,apache默認啟動不是以webdav方式,去掉#,再下面添加如下兩行
LoadModuledav_svn_modulemodules/mod_dav_svn.so
LoadModuleauthz_svn_modulemodules/mod_authz_svn.so
現在apache啟動時會加載上面三個so。
在文件末尾加上如下內容,下面是比較簡單的配置:
<Location/repos>#"/repos"是在url上指定的訪問路徑,客戶訪問需要鍵入這個路徑。
DAVsvn#聲明svn
SVNPathE:\svn#"E:\svn"是服務器上svn的repository的目錄。
#SVNParentPathE:\svn#對于一個目錄下存在多個工程的情況,可以聲明這個變量。
#在Apache SVN配置中svn有兩種,可以混合使用,一種是apache自身的認證機制,
#對進入/repos目錄的用戶進行統一認證,
#一種是應用svn的認證,可以深入到目錄級別進行權限控制,
#和svn獨立啟動時設置權限一樣。
###apacheauthbegin
AuthTypeBasic
AuthName"Subversionrepository"#認證的名字
AuthUserFileD:\svn_auth_file#D:\svn_auth_file里面存放的是使用htpasswd-mD:\svn_auth_fileuser
#生成的用戶名與密碼的加密文件。注意,Apache SVN配置時此處的路徑不能有空格。
Requirevalid-user#聲明,必須是有效的用戶才可以訪問
###apacheauthend
###svnauthbegin
AuthzSVNAccessFileD:\svn_authz#D:\svn_authz文件是根據%respository%/conf/authz的規則編寫,其實就
#是svn對用戶權限讀取的文件格式,mod_authz_svn.so要求的格式。
#SVNIndexXSLT"d:\svnindex.xsl"#d:\svnindex.xsl是用戶可以自定義的顯示模版,設計好模板,html上的顯
#會更漂亮。
#authenticationifnecessary.
SatisfyAny#字面翻譯是:都要滿足,是聲明用戶要滿足條件
Requirevalid-user#聲明,必須是有效的用戶才可以訪問
###svnauthend
</Location>
這時,通過http://serverip/repos可以根據設定好的權限進行訪問,訪問時可以看到最新的版本號,如何讓http訪問的時候也可以像cvs那樣看到更多的內容,老的版本,比較信息呢?可以使用viewvc來做,原來viewvc支持cvs,現在,也已經開始支持subversion了。
配置結束了,使用apache啟動svn服務其實是加載了svn的庫,我們看到,此種方式下,對svn的權限設置不同于svn獨立模式的要求,用不上svn自己的配置,但配置要求都是一樣的格式,都是svn的核心認證庫modmod_authz_svn.so在決定內容。只是不同的啟動方式而已。本節Apache SVN配置講解完畢。
【編輯推薦】
- Windows下Apache+SVN部署全程跟蹤
- 專家指導:Windows2003下如何進行Apache+SVN部署
- 深入剖析Subversion+Apache配置
- Subversion+Apache配置之完美體驗
- 重點剖析:Subversion1.4.6+Apache2.2.8服務器如何搭建