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