深入剖析:Subversion1.5.5和Apache2.2.9在Windows下的完美結(jié)合
Subversion相信大家都不會陌生,現(xiàn)在已經(jīng)發(fā)布了多個版本,本文就來說一下Subversion1.5.5與Apache2.2.9結(jié)合用法,希望本文能教會你更多東西。
初步實(shí)現(xiàn)了Apache2.2.9+Subversion1.5.5在windows下的配置與權(quán)限設(shè)置
1.安裝Apache2.2.9(http://httpd.apache.org/download.cgi)
選擇:Win32Binarywithoutcrypto(nomod_ssl)(MSIInstaller):apache_2.2.9-win32-x86-no_ssl-r2.msi[PGP][MD5]在安裝過程輸入信息前兩項NetworkDomain和ServerName中都輸入localhost,下面那個email就隨便了,如果機(jī)器安裝了iis并且啟動中,要先把iis服務(wù)停掉。否則會和apache的監(jiān)聽端口沖突的。
2.下載SVN1.5(如果是1.4.6版本則有exe二進(jìn)制安裝文件,而1.5目前只有source版,解壓下來即可用)
(我安裝的是Subversion1.5.5http://subversion.tigris.org/fil...svn-win32-1.5.5.zip)
(先安裝了之前的版本:1.4.6,然后弄1.5.5的拷過去覆蓋安裝的目錄文件)
將\svn安裝路徑\bin中的文件mod_dav_svn.so和mod_authz_svn.so,將它們拷貝到Apache的modules目錄,復(fù)制%SVN_HOME%\bin\libdb44.dll、libeay32.dll、以及ssleay32.dll到%APACHE_HOME%\bin然后,使用記事本之類的文本編輯器編輯Apache的配置文件\conf\httd.conf做如下修改:
去掉以下行的注釋(將開頭的#刪除):
#LoadModuledav_fs_modulemodules/mod_dav_fs.so
#LoadModuledav_modulemodules/mod_dav.so
在LoadModule節(jié)的最后添加以下兩行:
LoadModuledav_svn_modulemodules/mod_dav_svn.so
LoadModuleauthz_svn_modulemodules/mod_authz_svn.so
完成以上步驟也就完成了Apache2.2.9+svn1.5的基本配置
現(xiàn)在關(guān)閉Apache服務(wù)器,再重啟,會發(fā)現(xiàn)Apache控制臺的狀態(tài)欄出現(xiàn)Subversion的信息
如:Apache/2.2.9(Win32)SVN/1.5DAV/2
這就說明已經(jīng)成功的將Subversion集成到了Apache當(dāng)中
3.下載并安裝TortoiseSVN(http://tortoisesvn.tigris.org/)(我安裝的是Subversion1.5.5版本)根據(jù)向?qū)О惭b好后,創(chuàng)建版本庫E:\svnroot\delete(庫名),右鍵->TortoiseSVN->CreateRepositoryhere...“,然后可以選擇版本庫模式,這里使用默認(rèn)即可,然后就創(chuàng)建了一系列目錄和文件。
4.修改Apache的配置文件
在Apache的配置文件\conf\httd.conf文件的尾部添加
DAVsvn
SVNPathE:/svnroot/delete
AuthzSVNAccessFileE:/svnroot/delete/conf/access.auth
SatisfyAny
Requirevalid-user
AuthTypeBasic
AuthName"Subversionrepositories"
AuthUserFileE:/svnroot/delete/conf/users.auth
Requirevalid-user
設(shè)置解釋
接下來我們創(chuàng)建認(rèn)證所需的兩個文件:用戶文件users.auth和權(quán)限文件access.auth,users.auth可以用Apache安裝目錄下bin目錄中的htpasswd.exe程序生成,具體生成方法如下:
我的Apache安裝路徑是:D:\ProgramFiles\ApacheSoftwareFoundation\Apache2.2\
打開命令窗口,進(jìn)入到D:\ProgramFiles\ApacheSoftwareFoundation\Apache2.2\bin,
在命令行中使用如下命令:htpasswd–cbusers.authsvnadmin(用戶名)svnadmin(密碼)回車就可以了,命令行中的參數(shù)-c表示創(chuàng)建一個文件,第一次運(yùn)行創(chuàng)建好了,再添加別的用戶的時候就不要再使用這個參數(shù)了,如我再添加yanyan用戶htpasswd–busers.authyanyanyanyan這樣建立的用戶密碼默認(rèn)使用的MD5加密,你打開文件以后看到的可能就是如下格式:
svnadmin:7Z/80Al6$WTqVrBgshc/Bxi6YYkUga1$apr1$
yanyan:kNrG459T$qfAZ7MpgpFcdd2xp25gST1$apr1$
到此我們就添加好了svnadmin,yanyan兩個用戶,他們的密碼分別為svnadmin和yanyan配置認(rèn)證權(quán)限文件access.auth可以和users.auth文件在同一目錄下建立access.auth文件即可,然后填入如下內(nèi)容
[groups]
admin=svnadmin#管理用戶組
dev=yanyan,svnadmin#開發(fā)用戶組
[/]
*=r#設(shè)定所有用戶對根目錄有讀權(quán)限,即瀏覽權(quán)限
[/aaa]
@admin=rw#設(shè)定管理組成員對aaa目錄有讀和寫權(quán)限
@dev=#設(shè)定dev組成員對aaa目錄沒有任何權(quán)限
[/bbb]
@admin=#設(shè)定管理組成員對bbb目錄沒有任何權(quán)限
@dev=rw#設(shè)定dev組成員對bbb目錄有讀和寫權(quán)限
[/ccc]
@admin=#設(shè)定管理組成員對ccc目錄沒有任何權(quán)限
@dev=#設(shè)定dev組成員對ccc目錄沒有任何權(quán)限
到此我們?yōu)椴煌脩舴纸M定義了權(quán)限,大家可以使用不同的用戶
進(jìn)行browse/import/checkout試驗
訪問路徑為http://localhost/svn或者h(yuǎn)ttp://ip/svn/...
--------------------------------
◆配置多倉庫的用戶權(quán)限
◆首先在建立一個倉庫delete2
◆在E:\svnroot目錄下創(chuàng)建delete2子目錄
◆然后執(zhí)行svnservecreateE:\svnroot\delete2建立倉庫delete2
修改打開Apache安裝目錄下conf目錄中的httpd.conf文件,將光標(biāo)移到問文件的最末端
加入的代碼修改如下:
DAVsvn
SVNParentPathE:/svnroot
AuthzSVNAccessFileE:/svnroot/access.auth(權(quán)限文件)
SatisfyAny
Requirevalid-user
AuthTypeBasic
AuthName"Subversionrepositories"
AuthUserFileE:/svnroot/users.auth(用戶和密碼文件)
Requirevalid-user
◆認(rèn)證用戶文件users.auth不需要做任何修改
◆認(rèn)證權(quán)限文件access.auth修改如下:
[groups]
admin=svnadmin#管理用戶組
dev=yanyan,svnadmin#開發(fā)用戶組
[delete1:/]
*=r
[delete1:/aaa]
@admin=rw#設(shè)定管理組成員對aaa目錄有讀和寫權(quán)限
@dev=#設(shè)定dev組成員對aaa目錄沒有任何權(quán)限
[delete1:/bbb]
@admin=#設(shè)定管理組成員對bbb目錄沒有任何權(quán)限
@dev=rw#設(shè)定dev組成員對bbb目錄有讀和寫權(quán)限
[delete1:/ccc]
@admin=#設(shè)定管理組成員對ccc目錄沒有任何權(quán)限
@dev=#設(shè)定dev組成員對ccc目錄沒有任何權(quán)限
[delete2:/]
@svnadmin=#設(shè)定dev1組成員對delete2倉庫沒有任何權(quán)限
@dev=#設(shè)定dev2組成員對delete2倉庫沒有任何權(quán)限
到此我們?yōu)椴煌脩舴纸M對不同倉庫定義了權(quán)限,大家可以使用不同的用戶進(jìn)行browse/import/checkout試驗
倉庫1訪問路徑為http://localhost/svn/delete1
倉庫2訪問路徑為http://localhost/svn/delete2
對父目錄http://localhost/svn/,任何用戶都沒有任何訪問權(quán)限
5.總結(jié)
經(jīng)過以上幾個部分的介紹,初步實(shí)現(xiàn)了Apache2.2.9+Subversion1.5.5(forApache2.2.X)在windows下的配置與權(quán)限設(shè)置,并且根據(jù)單倉庫和多倉庫的不同情況,進(jìn)行了分別的分析與配置,基本可以滿足日常開發(fā)的需要,在實(shí)際的開發(fā)中,可以根據(jù)實(shí)際人員和項目的權(quán)限安排,進(jìn)行相應(yīng)的配置。
【編輯推薦】