zhaohuan 2011-02-18
有些杂凑,但基本解决了所有问题
一、下载安装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
pub_svnserve.conf的 pub_authz.conf的配置文件有非法字符的原因引起,需要查找pub_authz.conf提的非法内容比如多余的空格删除或直接将pub_authz.conf