Fedora SVN集成與配置Apache服務(wù)器與
Fedora SVN還是比較常用的,于是我研究了一下Fedora SVN,在這里拿出來(lái)和大家分享一下,希望對(duì)大家有用。Fedora SVN最常見(jiàn)的配置模式便是與Apache集成,這樣Fedora SVN可以采用WebDev協(xié)議方式提供服務(wù)。主要的好處有:通過(guò)Apache以HTTP方式穿透防火墻,便于在互聯(lián)網(wǎng)環(huán)境使用;提供目錄的版本控制;純2進(jìn)制的文件對(duì)比方式等。下面將介紹如何將Fedora SVN集成在Apache上。
準(zhǔn)備工作: 下載軟件:
Fedora SVN服務(wù)器端程序。到官方網(wǎng)站 的下載二進(jìn)制安裝文件,來(lái)到二進(jìn)制包下載部分 ,找到 Windows NT, 2000, XP and 2003部分,然后選擇"this directory",這樣我們可以看到許多下載的內(nèi)容,目前可以下載 svn-1.2.3-setup.exe。
TortoiseSVN,客戶端程序。TortoiseSVN是擴(kuò)展Windows Shell的一套工具,可以看作Windows資源管理器的插件,安裝之后Windows就可以識(shí)別Subversion的工作目錄。
官方網(wǎng)站是TortoiseSVN,下載方式和前面的svn服務(wù)器類(lèi)似,在Download頁(yè)面的我們選擇Official version for Win2k/XP or higher的版本,然后在sourceforge的下載頁(yè)面選擇目前的最高穩(wěn)定版本的安裝文件TortoiseSVN-1.2.5.4719-svn-1.2.3.msi。
(注意:TortoiseSVN有一個(gè)特殊對(duì)VS.Net運(yùn)行時(shí)一個(gè)BUG修正的版本,在下載頁(yè)面有選擇:Special version for Win2k/XP or higher: (We provide NO support for this!) uses _svn folders instead of .svn to work around the VS.NET bug with web projects. If you don't use web projects then please use the official version. )
TortoiseSVN的中文語(yǔ)言包,注意這個(gè)需要下和客戶端程序版本相同的??梢栽贒ownload頁(yè)面內(nèi)的Language Packs選擇下載。Apache服務(wù)器程序。
可以到Apache官方網(wǎng)站下載最新版本的Apache,并且Fedora SVN必須運(yùn)行在Apache2以上版本,在下載頁(yè)面選擇Windows的安裝包文件apache_2.0.55-win32-x86-no_ssl.msi
AnkhSVN,可選安裝VS.Net的SVN插件。有0.5和0.6版本選擇,0.6版支持VS2005 Beta2,下載頁(yè)面。停止IIS,因?yàn)锳pache默認(rèn)安裝為80端口,需要關(guān)閉IIS避免端口沖突。可以在安裝好之后再調(diào)整端口。
Fedora SVN開(kāi)始安裝:
先安裝Apache服務(wù)器。在到填寫(xiě)ServerInfo的時(shí)候,若機(jī)器已經(jīng)啟用了AD,安裝程序會(huì)自動(dòng)填寫(xiě),否則自己手動(dòng)填寫(xiě)。安裝完成之后到安裝目錄下找到conf目錄下的httpd.config文件,搜索Listen,并將Listen后面的80改為8080(或者你希望的端口),然后重新啟動(dòng)Apache服務(wù)器,這時(shí)可以用http://localhost:8080 來(lái)測(cè)試是否安裝正確。
再安裝SVN服務(wù)器,沒(méi)有什么好說(shuō)的,一路回車(chē)就可以了。(安裝SVN時(shí),請(qǐng)確保Apache服務(wù)器正在運(yùn)行狀態(tài),安裝過(guò)程中可能會(huì)將Apache關(guān)閉,重新啟動(dòng)屬于正?,F(xiàn)象)
配置Apache服務(wù)器與Fedora SVN集成:
首先將Subversion安裝目錄bin\下面的兩個(gè)文件:mod_authz_svn.so和mod_dav_svn.so復(fù)制到Apache安裝目錄modules\目錄下。
有些文章說(shuō)需要再修改httpd.conf,并做如下修改:找到Apache安裝目錄下的conf目錄,用文本編輯器打開(kāi)httpd.conf,找到一下兩行:
#LoadModule dav_module modules/mod_dav.so
#LoadModule dav_fs_module modules/mod_dav_fs.so
將每行前面的注釋符“#”去掉。再在所有LoadModule語(yǔ)句的最后添加一下幾行:
#SVN
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
但是我安裝完之后發(fā)現(xiàn)這個(gè)文件已經(jīng)被做了那些修改,大概是新版的Fedora SVN安裝程序做了一些優(yōu)化吧。其實(shí)在成功安裝Fedora SVN之后,Apache服務(wù)器已經(jīng)和Fedora SVN初步集成。
注意下面的狀態(tài)欄已經(jīng)是Apache/2.0.55 SVN1.2.3 DAV/2建立一個(gè)Fedora SVN存放文件的目錄,我在F盤(pán)下創(chuàng)建一個(gè)文件夾:F:/SubversionFiles 接下來(lái)我們必須告訴Apache我們的資源庫(kù)所在的路徑,可以通過(guò)Location指令來(lái)完成這個(gè)設(shè)置。
因?yàn)椴幌M麨槊總€(gè)單獨(dú)的項(xiàng)目都進(jìn)行單獨(dú)的設(shè)置,所以我們把所有項(xiàng)目都存放在統(tǒng)一的資源庫(kù)目錄,那么可以使用Fedora SVNParentPath指令來(lái)指定存放所有項(xiàng)目的路徑。在httpd.conf文件最后添加下面配置:
- #SVN
- <Location /svn>
- DAV svn
- SVNParentPath "F:/SubversionFiles"
- </Location>
這樣我們就可以通過(guò)http://myhost:8080/svn/<項(xiàng)目名> 來(lái)訪問(wèn)存放于資源庫(kù)F:/SubversionFiles中的指定項(xiàng)目。當(dāng)然有可能你并不希望某個(gè)項(xiàng)目提供這樣一種訪問(wèn)方式,這時(shí)候你可以使用SVNPath為每個(gè)項(xiàng)目進(jìn)行單獨(dú)的設(shè)置,SVNPath的使用方法如下:
DAV svn
SVNPath "F:/SubversionFiles/project1"
同樣把這段配置放在httpd.conf最后,重啟Apache HTTP服務(wù)即可通過(guò)http://myhost:8080/svn/project1 來(lái)訪問(wèn)project1項(xiàng)目的資源庫(kù)。
下面作一個(gè)測(cè)試:到F:\SubversionFiles下建立一個(gè)子目錄Test,然后到Aapche下的Bin目錄下執(zhí)行svnadmin create F:\SubversionFiles\Test打開(kāi)瀏覽器輸入網(wǎng)址:http://localhost:8080/svn/Test ,應(yīng)該可以正確訪問(wèn)。
但當(dāng)前該項(xiàng)目下還沒(méi)有加入任何內(nèi)容,所以顯示為空的有一點(diǎn)需要提示的是,現(xiàn)在的訪問(wèn)是完全匿名的,任何人都可以對(duì)SVN進(jìn)行操作。所以我們接下來(lái)利用Apache的權(quán)限管理功能來(lái)對(duì)SVN進(jìn)行用戶驗(yàn)證集成
加入用戶身份驗(yàn)證:
在確定對(duì)訪問(wèn)用戶的權(quán)限控制之前,你必須規(guī)劃好是對(duì)整個(gè)資源庫(kù)中的所有項(xiàng)目還是單獨(dú)的某一個(gè)項(xiàng)目進(jìn)行統(tǒng)一的身份驗(yàn)證, 也就是我們前面講到的是使用SVNParentPath還是SVNPath的問(wèn)題。
最簡(jiǎn)單的身份驗(yàn)證方式是使用Basic HTTP Authentication機(jī)制,該方式通過(guò)用戶名和口令對(duì)訪問(wèn)用戶進(jìn)行身份驗(yàn)證。我們可以直接通過(guò)Apache提供的支持進(jìn)行設(shè)置。Apache提供一個(gè)htpasswd工具來(lái)管理用戶名和口令。接下來(lái)我們利用這個(gè)工具來(lái)添加兩個(gè)用戶。
在命令行窗口中轉(zhuǎn)到Apache所在的目錄,執(zhí)行下列命令
說(shuō)明:創(chuàng)建用戶Xrinehart 輸入:htpasswd –c F:\SubversionFiles\svn_auth_passwd Xrinehart
說(shuō)明:使用-c參數(shù)來(lái)創(chuàng)建一個(gè)passwd文件
輸出:New password: *****Re-type new password: *****Adding password for user Xrinehart
再創(chuàng)建用戶的時(shí)候就不用-c參數(shù),而是用-m參數(shù),因?yàn)槲募vn_auth_passwd 已經(jīng)創(chuàng)建。
打開(kāi)svn_auth_passwd文件,密碼使用MD5加密過(guò)了,而且同樣的密碼加密出來(lái)的內(nèi)容卻不相同接下來(lái)我們必須告訴Apache服務(wù)器如何使用這個(gè)passwd文件,打開(kāi)httpd.conf找到剛才我們添加的Location配置的位置,修改如下:
- #
- # SVN
- #
- DAV svn
- SVNParentPath "F:/SubversionFiles"
- # how to authenticate a user
- AuthType Basic
- AuthName "Subversion repository"
- AuthUserFile "F:/SubversionFiles/svn_auth_passwd"
- # only authenticated users may access the repository
- Require valid-user
重新啟動(dòng)Apache HTTP服務(wù)器,使用瀏覽器打開(kāi) http://localhost:8080/svn/Test 你將會(huì)看到要求登錄的對(duì)話框,輸入你剛設(shè)置的用戶名和口令即可。這樣Apache和SVN的集成就基本告成了。
【編輯推薦】