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