windows系统搭建svn服务器

本文阐述Apache+mod_dav_svn配置方式。这种方式更灵活(例如无须开放额外的端口),但配置会复杂一些。Subversion通过Apache使用WebDAV协议来提供服务,客户端使用标准的http://打头的URL访问服务器上的资源。

 

 

软件版本

Subversionsvn-win32-1.4.6-Apache 2.2.x.zip(查看README.txt文件,These binaries were built with: Apache 2.2.6,该二进制包支持Apache2.2.X版本)

Apacheapache_2.2.8-win32-x86-no_ssl.msi

 

安装目录结构

 

1(安装目录结构)

 

 

2svn目录结构)

 

 

3svn项目库目录结构)

 

1、  安装Apache。将Apache安装成 for all Users,on Port 80,as a service。(注意:如果已经有一个IIS或者其它的程序使用80端口,安装可能会失败。如果是这样,可以到程序目录下的Apache Group/Apache2/conf目录中找到文件httpd.conf,将Listen 80改成一个不用的端口,比如Listen 8999。然后重新运行安装程序。

在这里安装路径为:C:/Java/Apache2.2,端口为:8999

Apache安装结束后,在浏览器地址栏输入http://localhost:8999,若呈现了一个已经配置好的网站,那么Apache就安装成功了; 

4Apache安装成功)

 

2、  停止Apache服务;

 

3、  复制svn文件到apache。将svn-win32-1.4.6/bin目录里所有的.so文件和.dll文件拷贝到Apache2.2/modules目录里。

其中mod_dav_svn.so是包含apache应该怎么处理svn的相关操作

mod_authz_svn.so是包含apache怎么去判断权限的方法。对于个人开发可以不用加载mod_authz_svn.so.但对于团队开发最好就加上,方便管理。

 

4、  修改apacheconf/httpd.conf文件,配置apache处理svn

    去掉以下行的注释(将开头的#删除):

         1.         #LoadModule dav_fs_module modules/mod_dav_fs.so

         2.         #LoadModule dav_module modules/mod_dav.so

    在LoadModule节的最后添加以下两行:

         1.         LoadModule dav_svn_module modules/mod_dav_svn.so

         2.         LoadModule authz_svn_module modules/mod_authz_svn.so

    到此已把svn需要的程序加载进Apache,已完成ApacheSubversion安装配置,但Apache还不知道怎么去处理svn,接下来需要设定Apachesvn访问路径,让Apache知道哪个URL将被Subversion使用;

 

5、  设定访问权限。在设定访问路径前,可以先建立访问权限和访问密码。

配置访问权限定义文件C:/Java/svn/passwords/ svnaccessfile.txt,该文件用于定义用户组和授权,但不包括用户和密码的管理。在设置该配置文件前需要预先规划好版本库的目录结构,这些目录结构将对哪些用户或/和组开放,是允许读还是允许读写。

#groups节中创建用户组

[groups]

admin = chenhao

devteam1 = chenhao,suzg

#/节是指整个版本库根目录的权限控制,所有人可读,允许admin组读写

[/]

* = r

@admin = rw

#允许devteam1组对dwgh读写 允许devteam2组对cwb读写

[dwgh:/]

@devteam1 = rw

 

该配置文件类似于一个ini文件,其中含有3种段:

1)         groups

在该段中定义组名及该组包括的用户名,格式为group_name = user1, user2, user3

2)         未指定版本库的目录授权段

段名的格式为[/directory_name]directory_name是要授权的目录。因为没有指定版本库的名称,这种段通常适用于只有一个版本库的情况。

在该段中定义用户或组对该目录的访问授权,格式为user_name = privileges@group_name = privileges,其中privileges可以是rwrw或空,对应的权限分别是读,写,读写或无权限。

3)         指定版本库的目录授权段

段名的格式为[repository_name:/directory_name],其中repository_name是指定的版本库名称,通常为创建版本库时的顶级目录名称。段中定义同第2)部分。

 

6、  设定访问密码

进入到Apache目录:cd C:/Java/Apache2.2/bin

生成用户密码文件:htpasswd -c passwords chenhao

Passwords是要生成的用户密码文件名,chenhao是用户,确定后会提示输入密码,输入结束后会在apache根目录生成passwords.pass密码文件,再将该密码文件移动到C:/Java/svn/passwords目录下即可。

注:也可用批处理进行用户批量添加,参见批处理文件:SvnPassword.bat

 

7、  设定Apachesvn访问路径。在conf/httpd.conf配置文件的最后追加一下内容:

<Location /svn>

DAV svn

SVNListParentPath on

SVNParentPath C:/Java/svn/projects

AuthType Basic

AuthName "Subversion repositories"

AuthUserFile "C:/Java/svn/passwords/passwords.pass"

AuthzSVNAccessFile "C:/Java/svn/passwords/svnaccessfile.txt"

Require valid-user

</Location>

        

<Location /svn>

意味着可以通过像这样的URL(http://MyServer/svn)来访问Subversion版本库

 

DAV svn

告诉Apache哪个模块负责服务像那样的URL--在这里就是Subversion模块

 

SVNListParentPath on

Subversion 1.3及更高版本中,这个指示器使得Subversion列出由SVNParentPath指定的目录下所有的版本库

 

SVNParentPath C:/Java/svn/projects

告诉Subversion在目录D:/SVN下寻找版本库

 

AuthType Basic

启用基本的验证,比如用户名/密码对

 

AuthName "Subversion repositories"

当一个验证对话框弹出时,告诉用户这个验证是用来做什么的

 

AuthUserFile C:/Java/svn/passwords/passwords.pass

指定D:/passwd用为密码文件用来验证用户的用户名及密码

 

AuthzSVNAccessFile C:/Java/svn/passwords/svnaccessfile.txt

指定D:/svnaccessfile来限定各个用户或组在版本库中目录的访问权限

 

Require valid-user

限定用户只有输入正确的用户名及密码后才能访问这个路径

 

8、  建库。以上文件目录结构规划、配置已结束,接下来建立svn储存代码库。

进入到Subversion目录:cd C:/Java/svn-win32-1.4.6/bin

建立新库:svnadmin create C:/Java/svn/projects/dwgh,即可生成下图目录结构:

 

图5dwgh项目库结构)

 

9、  重启Apache服务器,请求svn项目路径http://localhost:8999/svn/dwgh,第一次请求需要验证用户名密码,若环境搭建成果即可出现下图结果 

 

 

 

 

6(安装成功) 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值