安裝 Apache 2.2
安裝 Subversion 1.5.5
找到 Subversion 安裝目錄下的以下文件:
bin/mod_authz_svn.so
bin/mod_dav_svn.so
復(fù)制到 Apache 安裝目錄下 modules 目錄中
bin/intl3_svn.dll
bin/libdb*.dll
復(fù)制到 Apache 安裝目錄下 bin 目錄中(這里似乎并不是必須的,我猜想這里或許是為了支持 Berkeley DB 而所作的操作,但我并不打算深入研究下去)
二、環(huán)境
假設(shè) Subversion 安裝在 D:\SVN\Subversion 目錄下
假設(shè)創(chuàng)建 D:\SVN\Repositories\ 目錄作為版本庫總目錄
假設(shè)在 D:\SVN\Repositories\ 中創(chuàng)建目錄iSLeeBlog,并在其中創(chuàng)建版本庫,假設(shè)已經(jīng)配置好用戶授權(quán),那么應(yīng)該可以通過 svn://localhost/iSLeeBlog 訪問版本庫。
假設(shè)統(tǒng)一將Apache的SVN項(xiàng)目配置文件放在 D:\SVN\conf 目錄下
假設(shè)Apache的默認(rèn)端口號為8080
三、配置Subversion版本庫管理服務(wù)器
找到創(chuàng)建的版本庫目錄下的配置文件,例如:D:\SVN\Repositories\iSLeeBlog\conf\
將 passwd 文件改名為 passwd.svn(也可以不改名,這里是為了結(jié)構(gòu)更清晰)
用文本編輯器修改 svnserve.conf 文件,找到以下兩行
#password-db = passwd
...
#authz-db = authz
修改為:
password-db = passwd.svn
...
authz-db = authz
這里 authz 就是授權(quán)文件的名稱,在 Subversion 和 Apache 中可以使用相同的授權(quán)文件,但無法使用相同的 passwd 文件,因?yàn)?Apache 是以加密方式存儲密碼,而 Subversion 使用明文儲存密碼,所以上面將 Subversion 生成的 passwd 文件改名,說明其僅用在 Subversion 下。
思考:這里可以使用相同的賬號文件嗎?顯然,我對 Apache 的配置還是不太熟悉,兩個賬號文件需要同步維護(hù)比較麻煩,如果您知道如何解決,請您幫助我,謝謝。
如何配置授權(quán)文件不再詳述,請自行查看授權(quán)文件中自帶的注釋,已經(jīng)解釋的非常清晰。
四、配置Apache服務(wù)器
找到 Apache 安裝目錄下 conf/httpd.conf 文件,用文本編輯器修改:
找到以下兩句取消注釋:
#LoadModule dav_fs_module modules/mod_dav_fs.so
#LoadModule dav_module modules/mod_dav.so
增加以下兩句
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
使用 Apache 安裝目錄下的 bin/htpasswd.exe 可執(zhí)行文件生成授權(quán)文件
第一次生成,使用 -cb 參數(shù):
htpasswd -cb [filename] [username] [password]
例如:
htpasswd -cb passwd.apache islee 123
添加新用戶,使用 -b 參數(shù):
htpasswd -b passwd.apache another 456
將生成的 passwd.apache 文件移動到 D:\SVN\Repositories\iSLeeBlog\conf 目錄下
a) 配置單項(xiàng)目
在Apache的conf/httpd.conf文件,在末尾添加以下內(nèi)容
#配置虛擬目錄
<location /svn/iSLeeBlog>
#引用遠(yuǎn)程訪問模塊
DAV svn
#版本庫路徑
SVNPath D:\SVN\Repositories\iSLeeBlog
#授權(quán)文件
AuthzSVNAccessFile D:\SVN\Repositories\iSLeeBlog\conf\authz
#所有用戶都需要身份驗(yàn)證
Satisfy Any
Require valid-user
#驗(yàn)證方式
AuthType Basic
#項(xiàng)目的名稱
AuthName "iSLee's Blog Project"
#用戶文件
AuthUserFile D:\SVN\Repositories\iSLeeBlog\conf\passwd.apache
</location>
b) 配置多項(xiàng)目
在 httpd.conf 文件末尾增加一下一句,作用是引用指定目錄下的所有 project 文件
Include D:\SVN\conf\*.project
然后在指定目錄,這里是 D:\SVN\conf 中創(chuàng)建單個項(xiàng)目配置文件 iSLeeBlog.project 文本文件
iSLeeBlog.project 文件中的內(nèi)容同“a) 配置單項(xiàng)目”節(jié)中的內(nèi)容完全相同,新的項(xiàng)目之需要繼續(xù)創(chuàng)建 project 文件,并根據(jù)需要更改虛擬目錄路徑以及授權(quán)文件名稱即可。
配置以后需要重啟 Apache 服務(wù)器。
五、訪問
如果在局域網(wǎng)中,那么可以輸入“svn://localhost/iSLeeBlog”即可訪問版本庫。
如果遠(yuǎn)程訪問Apache服務(wù)器,那么可以在瀏覽器或客戶端軟件中輸入“http://yourdomain or IP/svn/iSLeeBlog”即可訪問iSLeeBlog項(xiàng)目。
六、備注
Subversion 的客戶端 TortoiseSVN 是一個很棒的工具,雖然它與本文無關(guān),但多看它附帶的幫助文檔,你將獲益匪淺
以上文檔由 iSLee 編寫維護(hù),最后更新日期:2009年3月6日
附,svn服務(wù)器配置:
1 下載服務(wù)器端
2 安裝服務(wù)器端
3 創(chuàng)建一個版本庫,命令:svnadmin create 新版本庫路徑
4 修改用戶名和口令。進(jìn)入新版本庫所在目錄,
找到conf目錄下的svnserve.conf,將其中 # password-db = passwd 的#去掉。
找到conf目錄下的passwd文件,將其中# harry = harryssecret 和 # sally = sallyssecret 改成自己的用戶名和密碼。=前面是用戶名,=后面是密碼,用戶名前面不要有空格。
5 啟動SVN服務(wù)器
方式一:命令行方式: svnserve.exe -d -r 版本庫路徑
方式二:服務(wù)方式:sc create svnserve binpath= "SVN的BIN目錄\svnserve.exe --service --root 版本庫路徑" displayname= "Subversion" depend= tcpip start= auto
如sc create svnserve binpath= "e:\svn\bin\svnserve.exe --service --root e:\svn\repos" displayname= "svn" depend= tcpip start= auto,注意:版本庫路徑后面不要帶\。
其中sc命令不是windows自帶的,是微軟.net sdk中的一個工具。
至此SVN服務(wù)器已經(jīng)能運(yùn)行,SVN服務(wù)器的訪問地址為 svn://服務(wù)器名或IP地址
示例:authz 文件
# 以[*/]標(biāo)記的為項(xiàng)目路徑
# rw 表示讀寫
# r 表示只讀
# *= 禁止所有用戶訪問,*代表所有用戶,權(quán)限為空代表沒有任何權(quán)限
# 可以為一個目錄賦予多個組或多個用戶
# 定義repos儲存庫根目錄的訪問權(quán)限
[repos:/]
@axtic=rw #定義組axtic下面的用戶擁有讀寫權(quán)限
azheng=rw #定義用戶azheng有讀寫權(quán)限
10yue=rw #定義用戶10yue有讀寫權(quán)限
dougen=rw #定義用戶dougen有讀寫權(quán)限
#定義test儲存庫下test目錄的訪問權(quán)限
#[test:/test]
#user=r
#下面是用戶組的配置,左邊是組名,右邊是隸屬于改組的用戶,多個用戶以逗號(“,”)隔開。
#組名可以由字母數(shù)字下劃線構(gòu)成
[groups]
axtic=azheng,10yue,dougen
聯(lián)系客服