apache 和 svn 环境搭建

svn可以单独搭建,客户端使用svn协议访问;也可以和apache一起搭建,客户端使用http或者https协议访问

[b]搭建环境[/b]
系统 : linux
安装文件 :
httpd-2.2.22.tar.bz2
subversion-1.6.5.tar.bz2
subversion-deps-1.6.5.tar.bz2

[b]安装apache[/b]
解压
tar jxvf httpd-2.2.22.tar.bz2
编译安装
$./configure --prefix=/home/space/magicbox/env/apache --enable-so --enable-dav --enable-dav-fs --enable-ssl --enable-maintainer-mode
$make
$make install

[b]安装svn[/b]
[color=red]将subversion-1.6.5.tar.bz2,subversion-deps-1.6.5.tar.bz2放在同一目下[/color]
分别解压,两个压缩包都会解压进subversion-1.6.5文件夹中
cd subversion-1.6.5
编译安装
$./configure --prefix=/home/space/tool/subversion --with-apxs=/home/space/magicbox/env/apache/bin/apxs --with-apr=/home/space/magicbox/env/apache/bin/apr-1-config --with-apr-util=/home/space/magicbox/env/apache/bin/apu-1-config
$make
$make install
完成后,查看apache httpd.conf文件,会怎加
LoadModule dav_svn_module modules/mod_dav_sav.so
LoadModule authz_svn_module modules/mod_authz_svn.so
这是apache svn处理模块,经过配置后,一定url格式的访问将有这两个模块控制,访问svn路径

[b]配置apache和svn[/b]
修改apache httpd.conf文件,将里面的user和group换成你系统中存在的用户,并且该用户在系统中要有用到的文件系统权限
使用apache 的htpasswd命令创建用户和密码文件(该文件相当于用户数据库,用户apache和svn访问权限控制)
./htpasswd -c 文档存放路径 username (创建第一个用户时使用-c,表需要创建文件)
./htpasswd -m 文档存放路径 username (之后追加用户时使用-m参数)

svn创建svn库
使用svn命令
./svnadmin create /home/work/workdir/svn/repos1
./svnadmin create /home/work/workdir/svn/repos2
/home/work/workdir/svn 为svn跟路径
repos1和repos2为svn的两个库

在httpd.conf文件的结尾加
<Location /svn>
DAV svn
SVNParentPath /home/work/workdir/svn
AuthType Basic
AuthName "Hello welcome to here"
AuthUserFile /home/work/local/svn/passwd --上面用htpasswd创建的用户文件地址
AuthzSVNAccessFile /home/work/workdir/svn-repository/repos1/conf/authz -- 下面解释
Require valid-user
</Location>

配置 svn库
repos1和repos2均为svn库,现拿repos1做为例子
cd /home/work/workdir/svn/repos1/conf
发现有三个文件authz、passwd和svnserve.conf
vi svnserve.conf
打开并修改以下两行
password-db = /home/work/local/svn/passwd --上面用htpasswd创建的用户文件地址
authz-db = /home/work/workdir/svn-repository/repos1/conf/authz --下面解释

authz的解释,同passwd文件一起,供apache、svn访问认证和授权,passwd提供认证数据,而authz提供授权数据,这个文件可以使用svn库中的conf文件中的authz也可以自己创建,
内容如下

[groups]
rd = user1,user2 --passwd文件中存在的用户,rd代表用户组,在组上赋权限
qa = --同上

[repos1:/] --对svn库repos1的根目录赋权,但随svn启动命令不同,写的不同
@rd = rw --对rd组赋读写权限
@qa = r

启动apache
./apachectl start

启动svn
svnserve -d -r /home/work/workdir/svn

解释
-r 后是svn根路径,如果路径一直到摸个库,则代表单独起着一个svn库
例如
svnserve -d -r /home/work/workdir/svn/repos1
此时上面authz的配置应该写成
[:/] --对svn库repos1的根目录赋权,但随svn启动命令不同,写的不同
@rd = rw --对rd组赋读写权限
@qa = r

至此,你用浏览器可以访问http://localhost/svn/repos1查看svn了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值