淺析Windows 2003下Apache+SVN配置
Windows 2003下面Apache+SVN配置
8月又快到了,忙的連寫(xiě)文章的時(shí)間都沒(méi)有了,也該寫(xiě)寫(xiě)了。本來(lái)這篇應(yīng)該是6月寫(xiě)的,因?yàn)檫@件事很早就做完了。之前就建議領(lǐng)導(dǎo)找個(gè)專(zhuān)人負(fù)責(zé)配置管理,但領(lǐng)導(dǎo)不怎么重視,從而使項(xiàng)目組的配置管理一直沒(méi)用起來(lái),導(dǎo)致代碼的版本無(wú)法控制,并且多個(gè)人在擴(kuò)展功能的時(shí)候,集成非常麻煩,偶爾還會(huì)帶來(lái)不必要的風(fēng)險(xiǎn),有時(shí)都不清楚最新的代碼在哪,一旦人員拿著最新代碼離職,后果不堪設(shè)想。
看來(lái)這件事還得自己親自下手,這也是沒(méi)辦法的辦法了。首先的把環(huán)境搭起來(lái),至于后面使用到什么程度就是另外一回事了,因?yàn)楹枚嗳硕疾粫?huì)使用SVN,就連自己也就會(huì)一些簡(jiǎn)單的,復(fù)雜的還真不懂,公司也不提供培訓(xùn)。
第一步:下載Apache和SVN軟件
Apache webserver http://httpd.apache.org/download.cgi
SVN Server http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91
TortoiseSVN 1.7 http://tortoisesvn.net/
兩者之間版本搭配要注意,最好下載最新版,下載SVN的時(shí)候后面的描述注明了支持的Apache版本。
第二步:安裝程序
1) 安裝Apache,安裝的時(shí)候注意一下是否開(kāi)有IIS、迅雷、QQ音樂(lè)等可能占用80端口的軟件,安裝過(guò)程一直Next,然后可以在httpd.conf文件里面修改Listen 9000(端口號(hào)),做一些基本的設(shè)置就可以了,安裝完成瀏覽器中訪(fǎng)問(wèn)http://loaclhost:9000,頁(yè)面出現(xiàn)It works!表示安裝成功!
2) 安裝SVN,SVN可能是.exe或者其他壓縮方式打包的軟件包,直接安裝或者解壓到某個(gè)目錄即可。
3) 安裝TortoiseSVN 1.7客戶(hù)端
第三步:配置Apache和SVN
1) 將C:Program FilesSubversionin目錄下的mod_dav_svn.so,mod_authz_svn.so,libdb44.dll ,拷貝出來(lái)放在C:Program FilesApache Software FoundationApache2.2modules目錄下。
2) 修改D:Program FilesApache Software FoundationApache2.2conf httpd.conf文件
3) 去掉以下行的注釋
- #LoadModule dav_fs_module modules/mod_dav_fs.so
- #LoadModule dav_module modules/mod_dav.so
4) 在LoadModule節(jié)的最后添加以下兩行:
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
***注意:這兩行的代碼順序不能錯(cuò),以免帶來(lái)不必要的麻煩。
重啟Apache,當(dāng)Apache無(wú)法啟動(dòng),或者無(wú)法加載某個(gè)動(dòng)態(tài)庫(kù)的時(shí)候,一般先檢查該動(dòng)態(tài)庫(kù)的關(guān)聯(lián)情況。
5) 然后在該文件末尾進(jìn)行相應(yīng)的配置,以便客戶(hù)端TortoiseSVN和瀏覽器知道如何訪(fǎng)問(wèn):
- # 可以通過(guò)像這樣的URL(http://10.122.88.24:9000/SvnRoot/)來(lái)訪(fǎng)問(wèn)Subversion版本庫(kù)
- <Location /SvnRoot>
- # 告訴Apache哪個(gè)模塊負(fù)責(zé)服務(wù)像那樣的URL--在這里就是Subversion模塊
- DAV svn
- # 告訴Subversion在目錄F:SvnRoot下尋找版本庫(kù)
- SVNParentPath F:SvnRoot
- # 啟用基本的驗(yàn)證,使用用戶(hù)名/密碼驗(yàn)證
- AuthType Basic
- # A2, Project,WeekSystem,……為版本庫(kù)
- AuthName "A2,Project,WeekSystem, CodePro,DevelopDoc,PorblemDoc"
- # passwd密碼和用戶(hù)文件,用來(lái)驗(yàn)證用戶(hù)的用戶(hù)名及密碼
- AuthUserFile F:SvnRootpasswd
- # authz 權(quán)限控制文件,限定各個(gè)用戶(hù)或組在版本庫(kù)中目錄的訪(fǎng)問(wèn)權(quán)限
- AuthzSVNAccessFile F:SvnRootauthz
- # 限定用戶(hù)只有輸入正確的用戶(hù)名及密碼后才能訪(fǎng)問(wèn)這個(gè)路徑
- Require valid-user
- </Location>
第四步:創(chuàng)建用戶(hù)密碼passwd文件
打開(kāi)命令行(DOS窗口),將當(dāng)前目錄切換到Apache2目錄(通常為C:Program FilesApache Software FoundationApache2.2in),然后打入以下命令以創(chuàng)建文件:
htpasswd -c passwd <username>
比如: htpasswd -c F:SvnRootpasswd admin
將會(huì)在: F:SvnRoot目錄下創(chuàng)建一個(gè)passwd文件,admin表示用戶(hù)名
第五步:權(quán)限控制文件authz創(chuàng)建
1) 第一種方法:命令行下面轉(zhuǎn)到到SVN的安裝BIN目錄。運(yùn)行:svnadmin create F:SvnRootProject
2) 第二種方法:在F:SvnRoot文件里面新建文件夾Project,然后右鍵TortoiseSVN——>Create repository here創(chuàng)建版本庫(kù),目錄里面將會(huì)生成配置文件,將conf文件夾里的authz復(fù)制到F:SvnRoot目錄下
然后打開(kāi)authz進(jìn)行配置,可以參照下面的示例:
#組配置 組 = 用戶(hù)名[groups]
@admin = admin #admin用戶(hù)
@user = test #test用戶(hù)還需要按照上面步驟來(lái)創(chuàng)建它和它的密碼# 為所有庫(kù)指定默認(rèn)訪(fǎng)問(wèn)規(guī)則# 所有人可以讀[/]
* = r
# 為Project版本庫(kù)制定權(quán)限#admin組擁有讀寫(xiě)權(quán)限#user組只有讀取權(quán)限[Project:/]
@admin = rw
@user = r
一切準(zhǔn)備工作已經(jīng)完成了,你就可以用URL(http://IP:9000/ SvnRoot /Project)來(lái)訪(fǎng)問(wèn)版本庫(kù)了!
好了,現(xiàn)在你就應(yīng)該可以去體會(huì)一下你的勞動(dòng)成果咯!
雖然可以使用,但是還是存在一個(gè)問(wèn)題,到現(xiàn)在也沒(méi)有解決,就是如何配置一個(gè)用戶(hù)通過(guò)http://IP:9000/ SvnRoot / 訪(fǎng)問(wèn)里面所有的版本庫(kù),希望高手能指點(diǎn)一下,在這里非常感謝了。
原文鏈接:http://www.cnblogs.com/ZHF/archive/2011/07/28/2119596.html
【編輯推薦】