首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > CVS SVN >

red hat 装配svn

2012-07-04 
red hat 安装svn素材:?httpd-2.2.22.tar ?subversion-1.6.17.tar ?apr-1.4.6.tar ? apr-util-1.4.1.tar ?a

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让其他人可读可写,呵呵。就可以精细化控制那些用户来访问哪个库了。

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

  • 热点排行