在網上看了一大堆資料,昨天終於在阿唐哥的協助下配成了Linux(RH9)下的subversion。總結各路經驗將安裝配置過程寫在下面:
一、所需安裝包:
(1)、Apache --httpd-2.0.59.tar.gz
(2)、subveision --subversion - 1.4.4版
包含兩個包
subversion-1.4.4.tar.gz 核心程式碼封裝
subversion-deps-1.4.4.tar.gz 依賴程式碼封裝
二、安裝步驟:
1、安裝Apache
首先解壓httpd--2.0.59包
# tar -xzvf httpd-2.0.59.tar.gz
# cd httpd-2.0.59
編譯參數 (預設安裝目錄/usr/local)
# ./configure --enable-module=so --enable-dav --enable-dav-fs --enable-so --prefix=/usr/local/apache2
#make
#make install
2、安裝subversion - 1.4.4
分別解壓兩個壓縮包,內容將解壓到同一個目錄 subversion-1.4.4,(預設解壓在同一個目錄下)
#tar -xzvf subversion-1.4.4.tar.gz
#tar -xzvf subversion-deps-1.4.4.tar.gz
進入該檔案夾,編譯參數為
#cd subversion - 1.4.4
#./configure --prefix=/usr/local/subversion
--with-apxs=/usr/local/apache2/bin/apxs
--with-apr=/usr/local/apache2
--with-apr-util=/usr/local/apache2
#make
#make install
3、配置SVN伺服器
(1) 修改版本庫設定檔:
版本庫1:
vi /home/svnroot/repository/conf/svnserve.conf
內容修改為:
[general]
anon-access = none
auth-access = write
password-db = /home/svnroot/repository/authfile //使用者設定檔
authz-db = /home/svnroot/repository/authz.conf //許可權設定檔
##realm = test
(2)修改Apache設定檔,添加以下資料至httpd.conf
<Location /svn>
DAV svn
SVNPath /svnroot/repository
SVNParentPath /home/svnroot/ //svn父目錄
AuthzSVNAccessFile /home/svnroot/repository/authz.conf //許可權設定檔
AuthType Basic //連線類型設定
AuthName "Subversion.zoneyump" //串連框提示
AuthUserFile /home/svnroot/repository/authfile //使用者設定檔
</LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user //採用何種認證
</LimitExcept>
</Location>
//其中authfile是通過
htpasswd -b -c /home/svnroot/repository/authfile username password //來建立的
//"Require valid-user"告訴apache在authfile中所有的使用者都可以訪問。如果沒有它,
//則只能第一個使用者可以訪問建立庫
重啟apache
#cd /usr/local/apache2/bin/ #./apachectl restart
//開啟瀏覽器訪問http://localhost/svn/test/,如果有東西顯示就說明成功。
4.許可權管理
1)增加使用者
# htpasswd /home/svnroot/repository/authfile name
//第一次設定使用者時使用-c表示建立一個使用者檔案。斷行符號後輸入使用者密碼,完成對使用者的增加
# htpasswd authfile 使用者名稱(加入新的使用者)
2)許可權分配
配置使用者存取權限:
vi /home/svnroot/repository/authz.conf
為了簡化配置,3個版本庫共用1個許可權設定檔/home/svnroot/repository/pwd.conf。如有必要,也可以分開。
檔案中定義使用者組和版本庫目錄許可權。
注意:
* 許可權設定檔中出現的使用者名稱必須已在使用者設定檔中定義。
* 對許可權設定檔的修改立即生效,不必重啟svn。
使用者組格式:
[groups]
<使用者組名> = <使用者1>,<使用者2>
其中,1個使用者組可以包含1個或多個使用者,使用者間以逗號分隔。
版本庫目錄格式:
[<版本庫>:/項目/目錄]
@<使用者組名> = <許可權>
<使用者名稱> = <許可權>
其中,方框號內部分可以有多種寫法:
/,表示根目錄及以下。根目錄是svnserve啟動時指定的,我們指定為/home/svnroot/repository。這樣,/就是表示對全部版本庫設定許可權。
test:/,表示對版本庫test設定許可權
許可權主體可以是使用者組、使用者或*,使用者組在前面加@,*表示全部使用者。許可權可以是w、r、wr和空,空表示沒有任何許可權。
樣本:
[groups]
admin = mangosoft
[/]
@admin = rw
[test:/]
@admin = rw
lsw = rw