SVN 搭建

今天在搭建SVN的时候遇到一个小问题,耽误我不少时间。在这里分享一下,前车之鉴。
环境:FreeBSD6.2-p8 Subversion-1.4.4_1 Apache2.0.61_2
目标:通过SVN方式进行日常开发和代码管理
SVN有两种环境实现目标,第一种就是通过svnserver的方式,第二种是通过apache方式实现。先说第一种。

一.Subversion安装
#cd /usr/ports/devel/subversion;
make WITH_MOD_DAV_SVN=yes APXS=/usr/local/sbin/apxs install clean
安装完成,准备开始进行配置。

二.建立SVN版本库
#mkdir /home/SVN //创建SVN库的根目录
#svnadmin create /home/SVN/test //也可以创建多个目录

三.权限设置
1.配置svnserver
#vim /etc/rc.conf //add
svnserve_enable="YES"
svnserve_user="www"
svnserve_group="www"
svnserve_flags="-d --listen-host=0.0.0.0 --listen-port=3690"
svnserve_data="/home/SVN"
2.编辑SVN配置文件
修改/home/SVN/test/conf/authz、passwd、svnserve.conf三个文件,这三个文件控制SVN权限。
a.配置svnserve.conf   //在文件中加入内容
[general]
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz      //   出现权限问题。无法 登陆。。就注释掉。  ### authz-db    记得用三个  ###
realm = My First Repository 
这个地方要注意,默认的配置行前面有空格,但在启动SVN后会出错,所以要把前面的空格删掉。
b.配置passwd //在文件中加入内容
[users]
svn = svn 
test = test
此处等号前为用户名,等号后为密码,根据自己情况设置
c.配置authz //在文件中加入内容
[groups]
svn = svn,test      //组名及组成员

[/home/test]         //目录名及读写权限
@svn = rw

[test:/]                  //版本库读写权限
@svn = rw

现在配置完成,运行/usr/local/etc/rc.d/svnserve start 服务立刻启动。


四、配置基于Apache的WebDAV方式访问SVN、配置httpd.conf和svn的权限文件

1.配置httpd.conf
在httpd.conf文件里面检查或加入如下模块

LoadModule dav_module libexec/apache20/mod_dav.so
LoadModule dav_fs_module libexec/apache20/mod_dav_fs.so
LoadModule dav_svn_module libexec/apache20/mod_dav_svn.so
LoadModule authz_svn_module libexec/apache20/mod_authz_svn.so

<Location /svn>
DAV svn
SVNParentPath /home/SVN
AuthType Basic
AuthName "Subversion in svn.com"
AuthUserFile /home/SVN/.svnpasswd
AuthzSVNAccessFile /home/SVN/.svnaccess 
Satisfy Any
Require valid-user
</Location>
啥意思呢?
其实最前面两行,apache安装好后基本上默认就有了,不用管,但是你要确定一下是不是真的有了,没有的话不行,检查/usr/local/libexe/apache20/下是否有相应so或者重新编译安装apache,并且激活相应的选项。
第三四行是安装svn时增加 WITH_MOD_DAV_SVN=yes APXS=/usr/local/sbin/apxs 这两个参数时也会自己默认加上的,如果没有就自己手动加上。
后面那一堆的部分是关键,大概意思就是调用.svnpasswd文件进行用户验证,调用.svnaccess文件进行权限判断,根据目录更改目录。

b)配置svn的用户权限文件
这回我们不会继续使用前面svnserve方式下的那三个文件了,而是使用httpd.conf文件里面配置的.svnpasswd和.svnaccess两个文件来配置,当然这两个文件的名字和路径你都可以根据自己喜好修改。

首先是配置.svpasswd文件,这个文件其实就是标准Apache的.htpasswd文件,弄过http方式验证的都知道咋回事。运行下面的命令创建三个用户
#htpasswd -c /home/SVN/.svnpasswd cooper
#输入口令
#htpasswd /home/SVN/.svnpasswd eding (注意这里不在需要-c参数,它是用来第一次创建文件用的)
#输入用户的口令
#htpasswd /home/SVN/.svnpasswd test
#输入test用户的口令

搞定.svnpasswd文件

接下来开始搞.svnaccess文件, 运行 vi /var/SVN/.svnaccess 编辑文件,加入下面的东西

[groups]
www = cooper ,eding,test

[test:/]
@www= rw 
#@g_r=rw

[svn:/test/]
@www = rw

这个文件呢,实际上跟前面 test/conf和toplee/conf下的authz文件格式一样,不过就是不需要为每个库单独创建,而统一使用了一个文件来配置,从文件中可以看 到变化,在配置目录的时候,增加了库的名字.


最后就是运行 /usr/local/etc/rc.d/apache20 restart 重启apache服务则全部搞定。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值