SVN管理問題解決方法專家指導(dǎo)
本節(jié)接著上節(jié)繼續(xù)向大家講解SVN管理方面的知識(shí),本節(jié)以一個(gè)測(cè)試作為開頭講解,希望通過本節(jié)SVN管理的學(xué)習(xí)大家都能夠有所提升。讓我們來看一下這個(gè)測(cè)試。
下面作一個(gè)測(cè)試:
到F:\SubversionFiles下建立一個(gè)子目錄Test,然后到Aapche下的Bin目錄下執(zhí)行svnadmincreateF:\SubversionFiles\Test
打開瀏覽器輸入網(wǎng)址:http://localhost:8080/svn/Test,應(yīng)該可以正確訪問,但當(dāng)前該項(xiàng)目下還沒有加入任何內(nèi)容,所以顯示為空的
有一點(diǎn)需要提示的是,現(xiàn)在的訪問是完全匿名的,任何人都可以對(duì)SVN進(jìn)行操作。所以我們接下來利用Apache的權(quán)限管理功能來對(duì)SVN進(jìn)行用戶驗(yàn)證集成。
加入用戶身份驗(yàn)證:
來看一下SVN管理過程中如何加入用戶身份驗(yàn)證。在確定對(duì)訪問用戶的權(quán)限控制之前,你必須規(guī)劃好是對(duì)整個(gè)資源庫(kù)中的所有項(xiàng)目還是單獨(dú)的某一個(gè)項(xiàng)目進(jìn)行統(tǒng)一的身份驗(yàn)證,就是我們前面講到的是使用SVNParentPath還是SVNPath的問題。
最簡(jiǎn)單的身份驗(yàn)證方式是使用BasicHTTPAuthentication機(jī)制,該方式通過用戶名和口令對(duì)訪問用戶進(jìn)行身份驗(yàn)證。我們可以直接通過Apache提供的支持進(jìn)行設(shè)置。Apache提供一個(gè)htpasswd工具來管理用戶名和口令。接下來我們利用這個(gè)工具來添加兩個(gè)用戶。
在命令行窗口中轉(zhuǎn)到Apache所在的目錄,執(zhí)行下列命令
說明:創(chuàng)建用戶Xrinehart
輸入:htpasswd–cF:\SubversionFiles\svn_auth_passwdXrinehart
說明:使用-c參數(shù)來創(chuàng)建一個(gè)passwd文件
輸出:
Newpassword:*****
Re-typenewpassword:*****
AddingpasswordforuserXrinehart
再創(chuàng)建用戶的時(shí)候就不用-c參數(shù),而是用-m參數(shù),因?yàn)槲募vn_auth_passwd已經(jīng)創(chuàng)建。
打開svn_auth_passwd文件,密碼使用MD5加密過了,而且同樣的密碼加密出來的內(nèi)容卻不相同
接下來我們必須告訴Apache服務(wù)器如何使用這個(gè)passwd文件,打開httpd.conf找到剛才我們添加的Location配置的位置,修改如下:
- #SVN
- DAVsvn
- SVNParentPath"F:/SubversionFiles"
- #howtoauthenticateauser
- AuthTypeBasic
- AuthName"Subversionrepository"
- AuthUserFile"F:/SubversionFiles/svn_auth_passwd"
- #onlyauthenticatedusersmayaccesstherepository
- Requirevalid-user
重新啟動(dòng)ApacheHTTP服務(wù)器,使用瀏覽器打開http://localhost:8080/svn/Test你將會(huì)看到要求登錄的對(duì)話框,輸入你剛設(shè)置的用戶名和口令即可。這樣Apache和SVN的集成就基本告成了
我們已經(jīng)實(shí)現(xiàn)了對(duì)SVN和Apache的安裝,并將它們集成在一起工作。這一篇?jiǎng)t主要介紹如何對(duì)SVNForApache進(jìn)行一些配置。
在Apache下為SVN建立多個(gè)庫(kù)。
SVN管理中如何在Apache下為SVN建立多個(gè)庫(kù)上篇中雖然也建立了一個(gè)SVN的庫(kù)在Apache下,但是我們不可能一個(gè)SVN服務(wù)器上只有一個(gè)項(xiàng)目,或者所有項(xiàng)目共用一個(gè)SVN庫(kù)進(jìn)行開發(fā),在Apache上為SVN建立多個(gè)庫(kù)可以通過建立多個(gè)虛擬目錄的方式實(shí)現(xiàn)。下面我們就來講講具體的步驟(注意,此篇中的配置和上篇中的配置方式有很大區(qū)別)
到F盤建立我們的SVN代碼存放位置目錄:SubversionFiles,并在其中建立一個(gè)conf目錄,將會(huì)把對(duì)Apache對(duì)SVN的配置文件都放在這里.再在F:\SubversionFiles下目錄Test1和Test2,并將它們變成SVN庫(kù)(用svnadmincreate命令或者用TortoiseSVN來創(chuàng)建都可以)
在httpd.conf的最后添加如下代碼:
#SVN項(xiàng)目配置文件,格式:Include配置文件名
#為每個(gè)虛擬目錄設(shè)置一個(gè)配置文件,用Include命令加載
IncludeF:/SubversionFiles/conf/*.project
即把F:/SubversionFiles/conf/目錄下的所有*.project文件都包到httpd.conf中來
在F:/SubversionFiles/conf/創(chuàng)建Test1.project和Test2.project文件,Test1內(nèi)容如下,Test2可以做相應(yīng)的修改。
#SVN項(xiàng)目名
DAVsvn
#SVN項(xiàng)目的路徑
SVNPathF:\SubversionFiles\Test1
#SVN項(xiàng)目的路徑權(quán)限授權(quán)文件存放路徑
AuthzSVNAccessFileF:\SubversionFiles\conf\Test1.access
#對(duì)于所有用戶都需要身份驗(yàn)證
SatisfyAny
Requirevalid-user
#驗(yàn)證方式
AuthTypeBasic
#項(xiàng)目的名稱
AuthName"MyTest1"
#用戶信息
AuthUserFileF:\SubversionFiles\conf\user
以上配置含義是在Apache下建立了一個(gè)叫作Test1的SVN虛擬目錄,指向F:\SubversionFiles\Test1,授權(quán)配置文件是F:\SubversionFiles\conf\Test1.access,用戶信息和密碼文件是F:\SubversionFiles\conf\user
通過以上配置,我們就在Apache上建立了Test1和Test2兩個(gè)虛擬目錄,也就是兩個(gè)獨(dú)立的SVN庫(kù),我們還需要兩個(gè)文件訪問權(quán)限配置的.access和包含登錄用戶的user。在F:\SubversionFiles\conf目錄中創(chuàng)建用戶列表文件user,方法在上篇中已經(jīng)說過,也就是htpasswd命令,我們需要?jiǎng)?chuàng)建Xrinehart,X-Killer,Guest三個(gè)用戶。
接下來,我們?yōu)門est1庫(kù)創(chuàng)建它的訪問權(quán)限文件F:\SubversionFiles\conf\Test1.access。在上篇文章中我們是采用對(duì)每個(gè)用戶分別賦予對(duì)應(yīng)權(quán)限的方式,如果用戶比較多,管理起來就會(huì)比較麻煩,這時(shí)我們需要用用戶組來對(duì)用戶進(jìn)行管理。下面我們就來嘗試用用戶組配置訪問權(quán)限。Test1.access文件內(nèi)容如下:
- [groups]
- AdminGroup=Xrinehart
- GuestGroup=guest
- [/]
- @AdminGroup=rw
- @GuestGroup=r
- X-Killer=rw
SVN管理在上面的配置中,通過[groups]節(jié)定義了兩個(gè)用戶組:AdminGroup和GuestGroup,并將Xrinehart用戶歸入AdminGroup用戶組,guest用戶歸入GuestGroup。再在下面的[/]定義了他們對(duì)Test1庫(kù)的根目錄的操作權(quán)限:AdminGroup組有讀寫權(quán)限,GuestGroup組只有讀權(quán)限,X-Killer用戶擁有讀寫權(quán)限。這里需要注意的是定義權(quán)限的時(shí)候,用戶組需要在前面加@符號(hào)來標(biāo)示。
為了測(cè)試效果,我們可以將Test2.access文件寫為:
- [groups]
- AdminGroup=Xrinehart,X-Killer
- GuestGroup=guest
- [/]
- @AdminGroup=r
- @GuestGroup=rw
保存好上面的所有配置文件之后,重新啟動(dòng)Apache服務(wù)器。此時(shí)我們就可以在IE里面通過http://localhost:8080/Test1和http://localhost:8080/Test2來訪問Test1和Test2庫(kù)了,你可以測(cè)試一下,用戶權(quán)限是否符合下面這個(gè)列表所示?做到這里,SVN在Apache上建立多個(gè)庫(kù)的配置也就算完成了。
Test1Test2
Xrinehartrwr
X-Killerrwr
guestrrw本節(jié)講解SVN管理問題完畢,請(qǐng)關(guān)注本節(jié)其他相關(guān)報(bào)道。
【編輯推薦】