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 即可