red hat 安装svn

素材:

 

httpd-2.2.22.tar  subversion-1.6.17.tar  apr-1.4.6.tar   apr-util-1.4.1.tar  apr-1.4.6.tar  

 

 sqlite-autoconf-3071100.tar

 

1. 下载 apr-1.4.6.tar,apr-util-1.4.1.tar

 

因为这个是apache和svn安装的前提,所以我们必须安装,安装在一个指定的目录,如下:

 

./configure --prefix=/home/bard_cap/apr

 

./configure --prefix=/home/bard_cap/apr-util --with-apr=/home/bard_cap/apr

 

这些目录下面。

 

我们再装一下 sqlite, 因为svn服务器需要这个东西。

 

./configure --prefix=/home/bard_cap/sqlite

 

装好apr, apr-util, sqlite这几个东西后,我们再装apache, 看看apache能不能启动。

 

./configure --prefix=/home/bard_cap/apache

 

然后,我们观察一下 apache/conf/httpd.conf这个配置文件,很显然是没有

 

 

 

LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

/modules/目录下面也是没有

 

 

 

 

                                            mod_dav_svn.so这些库文件的。

 

然后,我们到apache的目录下 ./apachectl start启动一下,然后看看apache能不能work.

 

我们重新配置一下apache的编译选项,重新编译,安装一下apache.

 

./configure --prefix=/home/bard_cap/apache --enable-dav --enable-so --enable-maintainer-mode --with-apr=/home/bard_cap/apr --with-apr-util=/home/bard_cap/apr-util

 

这时候,我们发现apache modules目录下面还是没有新东西,而且httpd.conf也没有变化,

 

 

这时候,我们按照 svn

 

./configure --prefix=/home/bard_cap/server --with-apxs=/home/bard_cap/apache/bin/apxs --with-apr=/home/bard_cap/apr --with-apr-util=/home/bard_cap/apr-util --with-sqlite=/home/bard_cap/sqlite

 

 

可能这个过程要转 derby_DB ,不管他!!!!

 

我们可以发现apache modules目录下面终于多了几个文件,如下:

 

mod_authz_svn.so  mod_dav_svn.so

 

conf目录下面的httpd.conf这个文件也神奇多了几行:


 

LoadModule dav_svn_module     modules/mod_dav_svn.so

LoadModule authz_svn_module   modules/mod_authz_svn.so

 

 

我们先不是试验 apache和svn服务器的结合使用,我们先单独使用svn服务器

 

 

/home/bard_cap/server/bin目录下面:

 

./svnadmin create /home/bard_cap/svn_data/hello 创建一个库

 

先到/home/bard_cap/svn_data/hello/conf目录下,有三个文件

 

authz  passwd  svnserve.conf

 

修改svnserve.conf

 

 

 anon-access = write (请注意,前面是没有任何空格的!!!!)

 

这个是没有做权限控制的,是任何匿名的人都可以读写的。

 

./svnserve -d -r /home/bard_cap/svn_data 启动这个服务 -d表示deamon.

 

我们先在本地试验一下,找一个空白地,比如这个位置叫:

 

/home/bard_cap/laji

 

然后,我们输入命令:

svn checkout svn://localhost/hello,把这个仓库checkout出来后,我们可以看到本地有一个Hello目录了,

 

然后我们增加一个文本文件,bard.txt 

 

然后输入命令 svn add bard.txt

 

最后checkin svn commit --message="this is a try"

 

我们可以看到在本地目录

 

/home/bard_cap/svn_data/hello/db/revprops/0 下面有了版本文件,呵呵

 

最后,我们用eclipse的svn来checkout试试,

 

输入:svn://10.50.15.106/hello

 

成功checkout了,但是这些都是权限还没有配置的结果,我将继续研究。

 

下面要介绍如何用apache访问svn

 

apache的httpd.conf要配置,配置成这个样子。

 

 

 

<Location /svn>

  DAV svn

  SVNParentPath  /home/bard_cap/svn_data/ (这是个总目录)

  #或者SVNPath /home/bard_cap/svn_data/hello

  AuthType Basic

  AuthName "svn repos"

  AuthUserFile /home/bard_cap/apache/bin/passwd.conf

 <LimitExcept GET PROPFIND OPTIONS REPORT>

      require valid-user

  </LimitExcept>

</Location>

 

 

 

用apache的命令造个文件  ./htpasswd -cb passwd.conf bardwu bardwu

 

 

然后重启apache即可,但是svn服务器不起来,也是OK的。

 

浏览器输入

http://10.50.15.106/svn/

 

输入用户名,密码即可,呵呵。

 

 

总结,其中apache和svn服务器的关系。

 

svn服务器提供了一种svn的协议来访问仓库, 所以svn服务不起来,svn://14.23.154.23/hello是找不到的。

 

但是当svn服务器停止的时候,光启动apache,apache也可以用完整的Http协议来完成 svn里面仓库的检出,checkin,

 

因为apche加载了svn.so,提供了一个纯Http协议的服务。

 

权限的配置

 

httpd.conf配置为

 

 

<Location /svn>

DAV svn

SVNParentPath /home/bard_cap/svn_data

AuthType Basic

AuthName "svn repos"

AuthUserFile /home/bard_cap/apache/bin/passwd.conf

AuthzSVNAccessFile /home/bard_cap/svn_data/control

Require valid-user

</Location>

 

control为:

 

 

[groups]

admin = wujiejie, dapao

other = look

[/]

@admin = rw

@other = r

 

这表示有两个用户,wujiejie,dapao为同一组,look为另外一组。

造用户还是用命令 ./htpasswd -c passwd.conf wujiejie

 

然后就是输入密码,追加一个用户。

 

./htpasswd  passwd.conf kersh

 

 

eclipse SVN插件用户更改用户如下:

 

http://lovemitter.blog.163.com/blog/static/1657981342010101910934207/

 

为了实现精细化控制库

 

httpd.conf中的

<Location /svn>

DAV svn

SVNParentPath /home/bard_cap/svn_data

AuthType Basic

AuthName "svn repos"

AuthUserFile /home/bard_cap/apache/bin/passwd.conf

AuthzSVNAccessFile /home/bard_cap/svn_data/control

Require valid-user

</Location>

 

control可以这样写,并且同时用命令创造一个库,./svnadmin create /home/bard_cap/svn_data/world 创建一个库

admin = wujiejie, dapao

other = look, eva

[hello:/]

@admin = rw

[world:/]

@other = rw



然后命令 chmod -R 777 world让其他人可读可写,呵呵。就可以精细化控制那些用户来访问哪个库了。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值