1.需要兩個檔案,httpd和subversion.
httpd是web伺服器,用來通過web訪問subversion,httpd可以在apache官方網站上下載到
最新為:
httpd:
http://httpd.apache.org/download.cgi?Preferred=http%3A%2F%2Fwww.apache.org%2Fdist
subversion:
http://subversion.tigris.org/downloads/subversion-1.4.0.tar.gz
2.建立一個使用者:svnroot
最好不要讓root使用者參與到svn的許可權管理和日常的運行和維護工作中來,但是下面的一些安裝和配置
操作還是 需要root使用者來完成的,因為有些操作只有root才能做。許可權問題很重要。曾經因為許可權問題折騰了一天。
3.編譯安裝httpd (root使用者操作):
//解壓apache2安裝包
# tar xvzf
httpd-2.2.2.tar.gz
//進入解壓後的目錄
# cd httpd-2.2.2
//配置apache安裝,前兩個
參數是必須要加的,你還可以根據您的需要添加其他的參數。
//後面的參數制定你要把apache安裝哪裡
# ./configure
--enable-dav --enable-so --prefix=/usr/local/apache2/
# make
//安裝
#
make install
# cd /usr/local/apache2/bin
//啟動apache服務
#
./apachectl start
//開啟瀏覽器http://localhost/
如
果有測試頁"It works!"出現則證明已經安裝成功。
4.
安裝Subversion
//解壓SubVersion安裝包 (root使用者進行下面的操作)
# tar xvzf
Subversion-1.3.1.tar.gz
//進入解壓後的目錄
# cd Subversion-1.3.1
//配置
subversion安裝
#./configure --with-apxs=/usr/local/apache2/bin/apxs
--prefix=/usr/local/subversion
--with-apr=/usr/local/apache2
--with-apr-util=/usr/local/apache2 --with-ssl --with-zlib
--enable-maintainer-mode
#
make
//安裝
# make install
//建立庫檔案所在的目錄 (svnroot使用者進行下面的操作)
#
mkdir /home/svnroot/repository
//進入subversion的bin目錄
# cd
/usr/local/subversion/bin
//建立倉庫"test"
# ./svnadmin create
/home/svnroot/repository/test
# cd /home/svnroot/repository/test
//
看看是不是多了些檔案,如果是則說明Subversion安裝成功了
# ls –l
# cd
/usr/local/subversion/bin
//這條語句將把路徑/home/user/import下找到的檔案匯入到你建立的
Subversion 倉庫中去,
//提交後的修訂版為1。
# ./svn import /home/user/import file:///home/svnroot/repository/test
–m "注釋"
//不讓其他人有該目錄的許可權
# chmod 700 /home/svnroot/repository
5.修改Apache設定檔
# cd /usr/local/apadche2/bin
//啟動Apache
#
./apachect1 start
# vi /usr/local/apache2/conf/httpd.conf
//在最下面添加
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
<Location /svn>
DAV svn
SVNParentPath /home/svnroot/repository/ //svn父目錄
AuthzSVNAccessFile /home/svnroot/repository/authz.conf //許可權設定檔
AuthType Basic //連線類型設定
AuthName "Subversion.zoneyump" //串連框提示
AuthUserFile /home/svnroot/repository/authfile //使用者設定檔
Require
valid-user //採用何種認證
</Location>
//其中authfile是通過"htpasswd [–c] /home/svnroot/repository/authfile username
password"來建立的
//"Require
valid-user"告訴apache在authfile中所有的使用者都可以訪問。如果沒有它,
//則只能第一個使用者可以訪問建立庫
//順便把你的連接埠號碼也改一下,要不然可能&你以前的Apache的連接埠衝突
6.重啟apache # ./usr/local/apache2/bin/apachectl restart
//開啟瀏覽器訪問http://localhost/svn/test/
,如果有東西顯示
就說明成功。
7.許可權管理
1)增加使用者
# htpasswd [-c]
/home/svnroot/repository/authfile wooin
//第一次設定使用者時使用-c表示建立一個使用者檔案。斷行符號後輸
入使用者密碼,完成對使用者的增加
# htpasswd authfile 使用者名稱(加入新的使用者)
2)許可權分配
# vi /home/svnroot/repository/authz.conf
[test:/]
//這表示,倉庫test的根目錄下的存取權限
wooin = rw //test倉庫wooin使用者具有讀和寫入權限
bao = r //test倉庫bao使用者具有讀許可權
[test2:/] //test2倉庫根目錄下的存取權限
wooin = r //wooin使用者在test2倉庫根目錄下只有讀許可權
bao = //bao使用者在
test2倉庫根目錄下無任何許可權
[/] //這個表示在所有倉庫的根目錄下
* = r
//這個表示對所有的使用者都具有讀許可權
#[groups] //這個表示群組設定
#svn1-developers
= wooin, bao //這個表示某群組裡的成員
#svn2-developers = wooin
#[svn1:/]
#@svn1-developers
= rw //如果在前面加上@符號,則表示這是個群組使用權限設定
將這個設定完成後。重啟Apache,就可以通過
http://localhost/svn/test
這個URL來訪問倉庫了,當然,受許可權的限制,必須是合法使用者才能訪問且具有相應的許可權
備忘:
1。apache進程的許可權:因為所有跟倉庫傳輸的操作都是通過apache進程進行的,所以即使你給svn使用者佈建了很大的許可權,但是
apache進程沒有訪問倉庫或者相關檔案的許可權也沒有用,apache進程的使用權限設定在
/usr/local/apache2/conf/httpd.conf 檔案中配置,找到檔案中的這兩行:
User daemon #
將daemon改為svnroot,讓apache進程以svnroot的身份運行
Group daemon
2。
在/etc/profile的結尾設定一些svn啟動時要做的工作 # start apache server for svn
/usr/sbin/apachectl
start
export SVN_EDITOR=vi
3。/home/respository/svnroot下的檔案操作許可權有給svnroot.