在win2003上apache整合svn

參考了下面的BLOG,在這裏先謝謝EVAN的無私共享。

www.blogjava.net/evanwhj/archive/2006/04/06/39498.aspx

一,安裝apache2.2和svn1.4.4的服務端

 第一步,安裝Apache2.2。

 第二步,安裝Subversion1.4.4 Server(目前最新版本);我使用的是svn-win32-1.4.4.zip,解壓之後即可使用。

一般SVN與Apache整合,可以通過Apache的虛擬目錄和安全控制,使用HTTP協議穿透防火牆,在實際開發環境中也是有作用的。

按照Evan的說法,我考慮再三後安裝了純JAVA編寫的SVN Web Client,就是中文的顯示還有一些問題,不過網上有相關的補丁,大家可以上去找找,也裝了tortoiseSVN1.4.4,感覺都很不錯。

SVNWebClient

 

二、整合

 第一步,打開Apache安裝目錄下的httpd.conf文件

找到下面的語句:

#LoadModule dav_module modules/mod_dav.so

將上面語句前面的#去掉

第二步,在這句後面追加,如下語句:

LoadModule dav_svn_module "{svn安裝目錄}/bin/mod_dav_svn.so"
LoadModule authz_svn_module "{svn安裝目錄}//bin/mod_authz_svn.so"

注:{svn安裝目錄}就是svn-win32-1.4.4.zip解壓後你放的目錄

第三步,在這個文件的最後,追加如下語句:

<location svn=""></location><location></location><location></location><location></location>
    DAV svn
    SVNParentPath d:/svn


第四步,創建倉庫

根據apache的配置文件的設置建立目錄:d:/svn,然後用svnadmin create d:/svn/test命令創建倉庫,命令執行成功之後,會在d:/svn/test下面生成很多的文件和目錄。

第五步,運行

重新啓動Apache Server
在瀏覽器中輸入網址:
http://localhost/svn/test/
這時候,看到頁面顯示:

Revision 0: /
Powered by Subversion version 1.3.2 (r19776).

安裝成功,接下來將進行權限設置。

三、svn權限設置

svn使用apache的權限管理對檔案庫及目錄進行讀寫管理

修改上面第三步的內容爲:

<location svn=""></location><Location "/svn" >
    DAV svn
    #SVNListParentPath on
    SVNParentPath d:\svn

    ### apache auth begin
    # how to authenticate a user
    AuthType Basic
    AuthName "Subversion repository"
    AuthUserFile D:\Subversion\apache_authz (保存用戶名和密碼,這個文件需要用Apache的htpasswd工具創建)
    Require valid-user
    ### apache auth end

    ### svn auth begin
    # our access control policy
    AuthzSVNAccessFile D:\Subversion\svn_authz  (保存用戶訪問的權限策略)
    # authentication if necessary
    #Satisfy Any
    ### svn auth end

</Location>

用htpasswd工具創建apache_authz 文件,

建立保存用戶名和密碼的文件
  htpasswd -cm  D:\Subversion\apache_authz  username1

-c 表示創建文件,-m表示對密碼用md5加密

然後,會提示輸入兩次密碼,以後再加用戶就不需要用-c了,直接用-m即可。

下面建立控制用戶訪問權限的文件svn_authz

在D:\Subversion中新建一個記事本文件,輸入下面的內容:

[groups]
test-developers = zxm
everyone = @test-developers

[test:/]                     //這表示,倉庫test的根目錄下的訪問權限
@test-developers = rw

[test:/test]             //test倉庫下test目錄的訪問權限
@test-developers = rw         // 如果在前面加上@符號,則表示這是個羣組權限設置

r  表示讀權限

w 表示寫權限

好,配置完成,重新啓動Apache server

在瀏覽器地址欄中再次輸入:http://localhost/svn/test/

這次要輸入密碼才能進入,趕快試試吧。

 

這裏順便交代一下,svn1.4.4的服務端只支持apache2.2版本的,暈死,被N個版本的指導瞎指導了一通。

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章