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