版权声明:本文为博主原创文章,未经博主允许不得转载。

下面是我配置SVN服务器的过程,现在把我所配置的方法,记录下来,以供其他有需要的朋友参考,需要改进的地方,请指教!

一 环境

  操作系统:windows2003 server

  Apache:httpd-2.2.22-win32-x86-no_ssl.msi

subversion: Setup-Subversion-1.7.8.msi

  TortoiseSVN: TortoiseSVN-1.7.11.23600-win32-svn-1.7.8.msi

二 安装步骤

1.安装Apache

如果您已经拥有Apache的安装程序,那么你就可以双击安装程序开始安装。请确保你输入正确的服务器URL(如果你的服务器没有域名,你可以直接输入IP地址,邮箱可以随便写一个)。我建议你将Apache安装成 for all Users,on Port 80,as a service。注意:如果你已经有一个IIS或者其它的程序使用80端口,安装可能会失败。如果是这样,你可以到程序目录下的Apache Group"Apache2"conf目录中找到文件httpd.conf,将其中的Listen 80改成一个不用的端口,比如Listen 8888。然后重新运行这个安装程序,这次应该不会再有问题了。
      如何 测试Apache是否安装成功?
     你可以在你的浏览器中键入 http://loccalhost,如果显示“It works!”,那么你的Apache就安装成功了。

2.安装Subversion并配置

a,双击Subversion的安装程序来完成安装,安装完毕之后。我们进入subversion文件目录中(默认安装位置是:c:\Program Files\Subversion),  在该目录中的bin文件夹中找到mod_dav_svn.so 和 mod_authz_svn.so,将它们拷贝到Apache的modules目录(通常为c:\Program Files\Apache Group\Apache2\modules)下。然后将Subversion/bin/ 目录下的 libdb44.dll、libeay32.dll、以及 ssleay32.dll文件 复制到 Apache目录 底下的 bin 目录下。

b,打开Apache的配置文件httd.conf(通常为c:\Program Files\Apache Group\Apache2\conf\httd.conf),修改以下内容:

  1. #LoadModule dav_fs_module modules/mod_dav_fs.so
  2. #LoadModule dav_module modules/mod_dav.so
  3. 修改为:
  4. LoadModule dav_fs_module modules/mod_dav_fs.so
  5. LoadModule dav_module modules/mod_dav.so
#LoadModule dav_fs_module modules/mod_dav_fs.so

#LoadModule dav_module modules/mod_dav.so

修改为: 

LoadModule dav_fs_module modules/mod_dav_fs.so

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
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

*注意: 这两行的代码顺序不能错,以免带来不必要的麻烦。

C, 然后在该文件最末进行相应的配置,以便客户端 TortoiseSVN和浏览器知道如何访问:

(注意:记得在c:\下建立文件夹(c:\svn))

  1. <Location /svn>
  2. DAV svn
  3. SVNParentPath C:\svn
  4. AuthType Basic
  5. AuthName "test"
  6. AuthUserFile c:\svn\passwd
  7. AuthzSVNAccessFile C:\svn\svnaccessfile
  8. Require valid-user
  9. </Location>
<Location /svn>
DAV svn
SVNParentPath C:\svn
AuthType Basic
AuthName "test"
AuthUserFile c:\svn\passwd
AuthzSVNAccessFile C:\svn\svnaccessfile
Require valid-user
</Location>

每一行的说明如下:

  1. <Location /svn>   #意味着可以通过像这样的URL(http://MyServer/svn)来访问Subversion版本库
  2. DAV svn     # 告诉Apache哪个模块负责服务像那样的URL--在这里就是Subversion模块
  3. SVNParentPath C:\svn   #告诉Subversion在目录C:\svn下寻找版本库
  4. AuthType Basic  #启用基本的验证,使用用户名/密码验证
  5. AuthName "test"   # test为版本库
  6. AuthUserFile c:\svn\passwd   #passwd问密码和用户文件,用来验证用户的用户名及密码
  7. AuthzSVNAccessFile C:\svn\svnaccessfile    #权限控制文件,限定各个用户或组在版本库中目录的访问权限
  8. Require valid-user  #限定用户只有输入正确的用户名及密码后才能访问这个路径
<Location /svn>   #意味着可以通过像这样的URL(http://MyServer/svn)来访问Subversion版本库
DAV svn # 告诉Apache哪个模块负责服务像那样的URL--在这里就是Subversion模块
SVNParentPath C:\svn #告诉Subversion在目录C:\svn下寻找版本库
AuthType Basic #启用基本的验证,使用用户名/密码验证
AuthName "test" # test为版本库
AuthUserFile c:\svn\passwd #passwd问密码和用户文件,用来验证用户的用户名及密码
AuthzSVNAccessFile C:\svn\svnaccessfile #权限控制文件,限定各个用户或组在版本库中目录的访问权限
Require valid-user #限定用户只有输入正确的用户名及密码后才能访问这个路径

d,下面,我们就来创建passwd文件,你打开命令行(DOS窗口),将当前目录切换到apache2目录(通常为c:\Program Files\Apache Group\Apache2),然后打入以下命令以创建文件:

  1. bin\htpasswd -c passwd <username>
  2. 比如: bin\htpasswd -c c:\svn\passwd admin
  3. 命令分析:
  4. c:\svn\passwd 表示会在:c:\svn目录下创建一个passwd文件
  5. admin 表示用户名
bin\htpasswd -c passwd <username>

比如: bin\htpasswd -c c:\svn\passwd admin
命令分析:
c:\svn\passwd 表示会在:c:\svn目录下创建一个passwd文件
admin 表示用户名

然后输入两次密码,如下图所示:

我们用记事本可以打开查看passwd这个文件
   
 
   可以看出,我们输入的密码,已经被加密了。但是【用户名】(admin)还是可以看到。

然后我们再创建一个test用户,密码也为Test

创建方法如下:

  1. bin\htpasswd -b c:\svn\passwd test test
bin\htpasswd -b c:\svn\passwd test test

此命令执行Apahce的bin目录下的htpasswd.exe来创建一个密码文件,创建完成之后,重启Apache服务。

e,权限控制文件创建

在c:\svn目录下创件svnaccessfile文件,然后打开进行配置,可以参照下面的示例:

  1. #组配置  组 = 用户名
  2. [groups]
  3. @admin = admin
  4. @user = test  #test用户还需要按照上面d步骤来创建它和它的密码
  5. # 为所有库指定默认访问规则
  6. # 所有人可以读
  7. [/]
  8. * = r
  9. # 为test版本库制定权限
  10. #admin组拥有读写权限
  11. #user组只有读取权限
  12. [test:/svn/test]
  13. @admin = rw
  14. @user = r
#组配置  组 = 用户名
[groups]
@admin = admin
@user = test #test用户还需要按照上面d步骤来创建它和它的密码 # 为所有库指定默认访问规则
# 所有人可以读
[/]
* = r # 为test版本库制定权限
#admin组拥有读写权限
#user组只有读取权限
[test:/svn/test]
@admin = rw
@user = r
三、测试
 
    (1)创建版本库
        
 
    新建一个文件夹--》鼠标右键点击---》选择【在此创建版本库】
    
 
     依次点击【创建目录结构】【启动版本库浏览器】
 
   (2)在d:\新建一个目录叫 wwwroot,我们用来测试svn是否成功安装了
 
         向wwwroot里,复制些文件。然后将文件 导入 库中
 
 
(3)打开IE浏览器,输入http://192.168.1.102/svn/test
    
   如果svn配置正确的话,应该可以看到上面的内容。
 

SVN服务器详细权限控制的更多相关文章

  1. Linux搭建SVN服务器详细教程

    前言 本文讲解Linux系统下如何搭建SVN服务器,详细说明各配置项的功能,最终实现可管控多个项目的复杂配置. SVN是subversion的缩写,是一个开放源代码的版本控制系统,通过采用分支管理系统 ...

  2. 搭建SVN服务器详细教程

    搭建SVN服务器详细教程 本教程会从最基本的下载安装到上传代码,下载代码这条线来详细讲述如何完成SVN服务器的搭建 下载并安装VisualSVN server 下载并安装TortoiseSVN 导入项 ...

  3. linux系统Centos环境下搭建SVN服务器及权限配置

    linux系统Centos环境下如何搭建SVN服务器以及svnserve.conf.authz.passwd配置文件详细介绍   至于svn的概念,这里就不做详细阐述了,可以自行百度.简单来讲就是一个 ...

  4. centos 7搭建svn+apache及权限控制

    SVN服务器运行模式: 模式1:svn服务器单独运行 监听: 3690端口 访问: svn://IP 模式2: svn 服务器+ apache : 80 端口 访问: http://IP 1. #安装 ...

  5. CentOS7.5下搭建的SVN实现删除权限控制和必须进行注释的提示操作

    需求:上传到SVN服务器的项目文件如果被普通用户误删了,虽然能恢复,但是如果删除的文件比较多,注释的内容简单,恢复的时候需要一个个的保存到本地,然后再上传到服务器上,会很麻烦,可能还会出现提交代码版本 ...

  6. windows下搭建svn服务器及权限配置

    服务器端VISUALSVN SERVER 3.3.1 下载地址 https://www.visualsvn.com/server/download/ 客户端TortoiseSVN 1.8.13下载地址 ...

  7. CentOS搭建svn服务器支持https访问

    在CentOS6.3 64位机器上配置SVN服务器,并设置只允许HTTPS连接,可以配置多个repos源,每个源都拥有自己的组和成员,用于权限控制. 安装相关软件 Apache yum install ...

  8. centos下搭建多项目svn服务器

    svn是多人协作开发中的利器,是一个开放源代码的版本控制系统. 相比与git,他的操作更加简单,windows下有优秀的图形界面,并且支持的文件类型比较多. 本文讲述如何在linux下搭建一个svn服 ...

  9. CentOS下SVN服务器的搭建使用

    转载自:http://ailurus.blog.51cto.com/4814469/1168481 SVN作为新一代代码版本管理工具,有很多优点,管理方便,逻辑明确,安全性高,代码一致性高.SVN数据 ...

随机推荐

  1. 图表控件== 百度 echarts的入门学习

    花了3天的时间 去学习跟试用之前两款的图表控件 hightcharts(商业,人性化,新手非常方便试用,图表少了点) 跟chartjs==>搭配vue更好 控件,整体而言都还可以. http:/ ...

  2. SQLite简单使用说明

    System.Data.SQLite.dll下载地址 http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki 选择. ...

  3. chromium 一些设置 --插件安装

    一.安装flash插件 打开网页 http://get.adobe.com/cn/flashplayer/otherversions/ 选择如图 所示  fp 18 for Opera and Chr ...

  4. Python显示函数调用堆栈

    网上找到如下几个思路: 1.用inspect模块 2.用sys._getframe模块 3.用sys.exc_traceback,先抛一个异常,然后抓出traceback #!/usr/bin/env ...

  5. 在MAC OS X上如何启用crontab?

    project: blog target: how-to-enable-crontab-on-osx.md date: 2015-12-16 status: publish tags: - OS X ...

  6. git merge 和 rebase 区别

    git pull  超级不推荐使用git pull 有坑,谨慎使用,pull底层是merge git pull 是 git fetch + git merge FETCH_HEAD 的缩写.所以,默认 ...

  7. PTA作业

  8. asp.net 动态添加自定义控件

    前两天一直纠结asp.net动态添加控件后,后台获取不到控件的问题,查看了网上很多的回答,可能自己的理解有误或者自己所掌握的知识有限,都没有解决我遇到的问题,经过两天的研究,终于把问题解决了. 我这里 ...

  9. 根据地图上的两个点各自的x,y坐标,计算出2点之间的直线距离。显示为公里、米

    /** * calc_map_distance() , 根据地图上的两个点各自的x,y坐标,计算出2点之间的直线距离 * @param array $point_1 第1个点的x,y坐标 array( ...

  10. RocketMQ生产者示例程序

    转载请注明出处:http://www.cnblogs.com/xiaodf/ 本示例展示了一个RocketMQ producer的简单实现,通过解析文本文件获取输入数据,将数据经过Avro序列化后发送 ...