posts - 11, comments - 29, trackbacks - 0, articles - 1
  BlogJava :: 首页 :: 新随笔 ::  :: 聚合  :: 管理

小探Subversion Server 之 Apache配置

Posted on 2006-01-26 23:32 -=Kinohl=- 阅读(3234) 评论(0)  编辑  收藏 所属分类: 软件评测
***************************************
关键字:Subversion,Apache,DAV
难易度: 简单

软件版本:subversion1.2.3
apache-server 2.0.55

时间:2006-01-26
Author:Kino
***************************************
安装到Apache
Subversion作为CVS的次代作品,Kerl真的是煞费苦心啊。现在我们就来看看如何配置它到ApacheServer。
Subversion本身有一个自带的小server就是bin下的cvsserve ,通过svn://XXXX进行访问。同时支持ssh配置。但是弱点就是这个server对于权限和用户管理很弱,对于大型项目,必须将他挂在ApacheServer这样的重磅萨巴上。
[svnserve的用户文件需要修改conf下的2个文件,自己看看,很简单都有注释的,这里不说了]

        你应该得到subversion的二进制安装版,比较稳定的是1.2.3版本,这个版本对于apacheserver最低的版本要求是2.0.45 所以我们可以去apache官方站点下载2.0.55版本(最新已经是2.5了吧)。分别安装2个软件。
ok,软件环境好了,那就来连接他们吧。

数据库连接:
(如果你懒得改,那么安装软件的时候就一定要先安装ApacheServer,Subversion安装的时候会自动修改)
subversion可以被看作是一个特殊的数据库(事实上也就是,呵呵FSFS 和伯克利DB)。那么就需要让Apache能够访问subversion的数据库,这就用到了module概念,我们便来修改httpd.conf文件。
1。打开Apache自带的DAVmodule:去掉“LoadModule dav_module modules/mod_dav.so”前的#
2。追加访问subversion用的module:(subversion安装目录bin下自带有这2个modules)
LoadModule dav_svn_module "C:/Program Files/Subversion/bin/mod_dav_svn.so"
LoadModule authz_svn_module "C:/Program Files/Subversion/bin/mod_authz_svn.so"

权限设置:
比较麻烦的东西来了。我们需要配置3个东西:
1。在httpd.conf中追加<Location > 。例子如下:
#配置subversion用户权限
<Location /mysvn>
  DAV svn
  # http中输入 "/mysvn/Parser" URL will map to a repository F:/SVN/repository/Parser
 SVNParentPath F:/SVN/repository/

  #声明 accessfilepolicy 文件,目的是确认Group分类和目录的访问权限
 AuthzSVNAccessFile F:/SVN/commonconf/accessfilepolicy 

 # only authenticated users may access the repository
 # Require valid-user
 # For any operations other than these, require an authenticated user.
 <LimitExcept GET PROPFIND OPTIONS REPORT>
    Require valid-user
 </LimitExcept>

  # 声明userauthofapachedav文件,其内容是各个用户的md5密码
  AuthType Basic
  AuthName "HFSVB AuthName"
  AuthUserFile F:/SVN/commonconf/userauthofapachedav
</Location>

2。accessfilepolicy 文件(放在项目的conf目录下,也可随意) 如下:
#this file communicate with httpd file's Location Tag ,per file  per Tag
#like svnserve.conf  here section is [repos-name:path] or [path]
#if you use SVNParentPath in httpd.conf then here you MUST use repository name
#if you use SVNPath ,no problem
#r   read     w   write 

#don't have any right to parser:/src/ of user guest
#[repository名字:path]
#[parser:/src/]
#guest =

[groups]
administrator = admin
developer = tester
everyone = admin, tester

#default no one has right to repos,so use * to everyone
[parser:/] #根目录下所有的文件和目录,又继承关系
* = r  #默认的所有人都有 读权限
@developer = rw  #这就表明只有developer(tester)才有读写权限
[ 具体的文件和内容可查阅 Orilly的《使用Subversion进行版本控制》
访问 http://www.subversion.org.cn/svnbook/1.1/index.html  ]
3。userauthofapachedav文件
admin:$apr1$A45.....$WQ0RCK61I/PO4gSKt.kK60
这个文件是如何生成的呢,使用apache 的bin目录下的htpasswd.exe。用法可以参照 --help的帮助。
这里给一个例子吧
>htpasswd -cm C:/userauthofapachedav  admin
>input password:admin123
>again : admin123 
具体的英文忘了。呵呵不过很简单的。

好了,就这么简单。祝大家开心。这只是入门。具体的操作还要靠各位自己去感受。

关于如何设置subversion的项目库,上边提到的orilly的书就有记载。

       


只有注册用户登录后才能发表评论。


网站导航: