天天看點

Apache2.2.8 + svn-1.4.6安裝配置實錄

Apache2.2.8 + svn-1.4.6安裝配置實錄

一、準備工作

 1.下載下傳apache2.2.8

 下載下傳的地方很多,我選擇的是天空下載下傳站 http://www.skycn.com/soft/41662.html

 2.下載下傳svn-win32-1.4.6.zip :

 http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=8100&expandFolder=8100&folderID=8100

 注意要選擇 Subversion 1.4.6 Win32 binaries for Apache 2.2.x. 這款

二、安裝 

 第一步,安裝Apache2.2.8,下載下傳後直接安裝就可以了,安裝過程唯一要注意的地方80端口不要被占用。

 第二步,安裝Subversion1.4.6,直接解壓縮svn-win32-1.4.6.zip即可使用。

 我安裝的路徑分别是:  apache:D:/Apache22  SVN:D:/svn

二、整合  

 第一步,拷貝 /svn/bin/ 目錄下mod_dav_svn.so,mod_authz_svn.so和libdb44.dll,intl3_svn.dll拷貝至/Apache2.2/modules   

注意兩個dll一定要拷貝過去,開始沒有拷貝這兩個dll檔案,導緻apache始終不能加載 mod_dav_svn.so  

第二步,打開Apache安裝目錄下的httpd.conf檔案,找到LoadModule dav_module modules/mod_dav.so(83行)    

 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    

第三步,建立SVN版本庫根目錄   我的根目錄:D:/svn/SVNSource

 第四步,在這個檔案的最後,追加如下語句:

<Location /svn>

   DAV svn

   #SVNListParentPath on

   SVNParentPath D:/svn/SVNSource

  </Location> 
           

 第五步,建立倉庫   進去svn/bin目錄 執行 svnadmin create D:/svn/SVNSource/test   指令執行成功之後,會在D:/svn/SVNSource/test下面生成很多的檔案和目錄。  

 第六步,測試運作     重新啟動Apache Server 在浏覽器中輸入網址: http://localhost/svn/test/這時候,看到頁面顯示:    Revision 0: / Powered by Subversion version 1.4.6 (r19776).   安裝成功,接下來将進行權限設定。  

三、svn權限設定  

 第一步,修改上面第四步的内容為: 

<Location /svn>

    DAV svn

    #SVNListParentPath on

    SVNParentPath D:/svn/SVNSource



    ### apache auth begin

    # how to authenticate a user

    AuthType Basic

    AuthName "Subversion repository"

    #儲存使用者名和密碼,這個檔案需要用Apache的htpasswd工具建立

    AuthUserFile D:/svn/apache_authz

    Require valid-user

    ### apache auth end



    ### svn auth begin

    # our access control policy

    #儲存使用者通路的權限政策

    #AuthzSVNAccessFile D:/Program Files/svn/svn_authz

    # authentication if necessary

    #Satisfy Any

    ### svn auth end

</Location>
           

 第二步,用htpasswd工具建立apache_authz 檔案   

進去apache22/bin目錄 執行 htpasswd -c D:/scv/apache_authz test   

-c 表示建立檔案,然後,會提示輸入兩次密碼,以後再加使用者就不需要用-c了。

第三步, 下面建立控制使用者通路權限的檔案svn_authz   

在D:/svn中建立一個記事本檔案,輸入下面的内容:

[groups]
g_vip = improve
everyone = @g_vip   
[SVNSource:/]                   //這表示,倉庫SVNSource的根目錄下的通路權限
@g_vip = rw

[SVNSource:/xc]                //SVNSource倉庫下test目錄的通路權限
@g_vip = rw                    // 如果在前面加上@符号,則表示這是個群組權限設定
           

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

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

SVN配置成服務啟動

4.1啟動的服務與用戶端檢出的關系:

4.1.1       如果啟動的服務指向一個具體的版本庫,如紅字部分描述:

sc create SVNService binpath= "D:/Subversion/bin/svnserve.exe --service -r D:/SVN/svntest" displayname= "SVNService" depend= Tcpip start= auto

則用戶端檢出的位址應為:svn://192.168.0.1/

4.1.2       如果啟動的服務指向的是多個版本庫的父目錄,如紅字部分描述:

sc create SVNService binpath= "D:/Subversion/bin/svnserve.exe --service -r D:/SVN" displayname= "SVNService" depend= Tcpip start= auto

則用戶端檢出的位址應為:svn://192.168.0.1/svntest

其中,sc是windows自帶的服務配置程式,參數binPath表示svnserve可執行檔案的安裝路徑,由于路徑中的"Program Files"帶有空格,是以整個路徑需要用雙引号引起來。而雙引号本身是個特殊字元,需要進行轉移,是以在路徑前後的兩個雙引号都需要寫成/"

 --service參數表示以windows服務的形式運作,--root指明svn repository的位置,service參數與root參數都作為binPath的一部分,是以與svnserve.exe的路徑一起被包含在一對雙引号當中,而這對雙引号不需要進行轉義。

displayname表示在windows服務清單中顯示的名字, depend =Tcpip 表示svnserve服務的運作需要tcpip服務,start=auto表示開機後自動運作。

若要解除安裝svn服務,則執行 sc delete svnserve 即可