在网上看了一大堆资料,昨天终于在阿唐哥的帮助下配成了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