網上有資料,但總有些許問題,因此自己記錄下來。
有些雜湊,但基本解決了所有問題,其他的可參見參考網頁(見後,本文結構從網頁1中梳理而來)
一、下載安裝APACHE2,安裝檔案能到官方網站
http:/www.apache.org
下載.
tar xvzf httd-2.2.16.tar.gz
cd httpd-2.2.16
/安裝APR和APR-UTIL
cd srclib/apr
./buildconf
./configure --prefix=/opt/svn/data/apr
make && make install
cd ../apr-util
./buildconf
./configure --prefix=/opt/svn/data/apr --with-apr=/opt/svn/data/apr
make && make install
cd ../..
./configure --enable-dav --prefix=/opt/svn/data/apache2 --with-apr=/opt/svn/data/apr --with-apr-util=/opt/svn/data/apr --enable-so --enable-rewrite
make && make install
二、安裝subversion
1。編譯安裝,安裝檔案能到官方網站
http:/www.subversion.org.cn
下載.
tar zvxf subversion-1.6.12.tar.gz
tar zvxf subversion-deps-1.6.12.tar.gz
cd ./subversion-1.6.12
./configure --prefix=/opt/svn/data/subversion --with-apr=/opt/svn/data/apr --with-apr-util=/opt/svn/data/apr --with-apxs=/opt/svn/data/apache2/bin/apxs
make && make install
編譯完成後會自動在 apache2/conf/httpd.conf 添加
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
2。建立一個subversion版本庫
mkdir -p /opt/svn/data/svn
/opt/svn/data/subversion/bin/svnadmin create /opt/svn/data/svn/MyProject
mkdir /opt/svn/data/svn/access
mkdir /opt/svn/data/svn/root1
mkdir /opt/svn/data/svn/root2
3。修改svn版本庫的設定檔案
vi /opt/svn/data/svn/MyProject/conf/svnserve.conf
將[general]一行前面的"#"去掉,並且不能有空格符號。
4。建立apache的認證使用者和認證組
/opt/svn/data/apache2/bin/htpasswd -cb /opt/svn/data/svn/access/http_auth_userfile admin admin
/opt/svn/data/apache2/bin/htpasswd -b /opt/svn/data/svn/access/http_auth_userfile user01 user01
/opt/svn/data/apache2/bin/htpasswd -b /opt/svn/data/svn/access/http_auth_userfile user02 user02
5。編輯subversion版本庫許可權控制檔案
$> vi /opt/svn/data/svn/access/svn_auth_groups
##subversion版本庫組許可權控制
#
[groups]
MyProjects = user01,admin,user02
[/]
admin = rw
[root1:/]
usersgroup01 = rw
usersgroup02 = r
[root2:/]
usersgroup01 = r
usersgroup02 = rw
$> vi /opt/svn/data/svn/access/http_auth_groupfile
sys-users: liuliu
tech-users: you
6。修改檔案存取權限
chown -R nobody /opt/svn/data/svn
chmod -R 777 /opt/svn/data/svn
三、在apache2的httpd.conf中加入以下代碼:
<Location /svn>
DAV svn
SVNParentPath /opt/svn/data/svn
# our access control policy
AuthzSVNAccessFile /opt/svn/data/svn/access/svn_auth_groups
# how to authenticate a user or group
AuthType Basic
AuthName "Subversion repository"
AuthUserFile /opt/svn/data/svn/access/http_auth_userfile
AuthGroupFile /opt/svn/data/svn/access/http_auth_groupfile
Require group usersgroup01 usersgroup02
</Location>
四、啟動subversion伺服器
/opt/svn/data/subversion/bin/svnserve -d -r /opt/svn/data/svn
五、檢查使用權限設定是否正確:
能在瀏覽器的地址欄裡直接輸入http:/ip/svn/地址/版本庫路徑,會彈出一個驗證視窗。
六,匯入版本庫和取得一個版本庫的拷貝
svn import /opt/svn/data/sysadmin/README.txt http:/ip/svn/MyProject (-m "initial import"? 註:我是直接用TortoiseSVN和eclipse外掛程式訪問的)
備份以前的SVN庫
#svnadmin dump /data/svn/repos/MyProject/ > /root/tony.tang
把備份出來的資料恢複到本地
#svnadmin load /data/svn/repos/MyProject/ < /home/tony.tang
參考資料:
http://www.sudu.cn/info/html/edu/20060102/295979.html (lost and something wrong)
http://blog.csdn.net/leishiwei/archive/2009/11/27/4888837.aspx(good but somehow complex)