转载:http://indian.blog.163.com/blog/static/10881582007112415021751/
Subversion的设计包括一个抽象的网络层,这意味着版本库可以通过各种服务器进程访问。理论上讲,Subversion可以使用无限数量的网络协议实现,目前实践中存在着两种服务器。
SVNServer:svnserve是一个小的(也叫轻型的)、独立服务器,使用自己定义的协议和客户端。(作者注:以下称这种服务器为“svnserver服务器”,上面的安装配置就是安装svnserver服务器。)
ApacheSVN:Apache是最流行的web服务器,通过使用mod_dav_svn模块,Apache可以访问版本库,并且可以使客户端使用HTTP的扩展协议WebDAV/DeltaV进行访问。(作者注:以下称这种服务器为“ApacheSVN服务器”)
通过 Http 协议访问版本库是 Subversion 的亮点之一。ApacheSVN服务器具备了许多svnserve服务器没有的特性,使用上更加灵活,但是有一点难于配置,灵活通常会带来复杂性。
由于 Subversion 需要版本化的控制,因此标准的 Http 协议不能满足需求。要让 Apache 与 Subversion 协同工作,需要使用 WebDAV(Web-based Distributed Authoring and Versioning:)Web 分布式创作和版本控制)。WebDAV 是 HTTP 1.1 的扩展,关于 WebDAV 的规范和工作原理,可以参考 IETF RFC 2518 (http://www.ietf.org/rfc/rfc2518.txt)。
一、必备条件
为了让你的版本库使用HTTP网络,你必需具备以下几个条件:
1、配置好httpd 2.2.x,并且使用mod_dav启动。
2、为mod_dav安装mod_dav_svn插件。
3、配置你的httpd.conf,使http协议能访问版本库。
apache+svn结合
1. 安装svn服务器
2. svn服务器如果下载的是一个压缩包。解压即可。我是一个exe安装程序。装好后位于C:\Program Files (x86)\Subversion
3. 测试svn。进入svn的服务器目录,进入bin目录,svnadmin.exe create D:\svn_test\svntest
create是创建的意思。 D:\svn_test\svntest表示会把svntest应用穿件在D:\svn_test
可以看到目录结构
或者使用图形化TortoiseSVN来操作,在svntest右击,TortoiseSVN,create repository here
运行
svnserve.exe --daemon --root D:\svn_test
访问可以看到
这还是一个空目录。
结合apache
1. 安装apache,不说明。
2. 拷贝svn所在目录的的bin目录下面的文件 intl3_svn.dll、libdb44.dll、mod_authz_svn.so、mod_dav_svn.so到apache目录下面的modules目录
3. 修改httpd.conf 文件。把
#LoadModule dav_module modules/mod_dav.so去掉前面的#符号,在下面添加
LoadModule dav_svn_module modules/mod_dav_svn.so,这句必须写在LoadModule dav_module modules/mod_dav.so后面,因为它依赖于mod_dav.so
4. 添加
< Location /mysvn/>
DAV svn
SVNPath D:\svn_test\svntest
</Location>
DAV svn表示会被mod_dav_svn.so处理。
SVNPath版本库所在目录
/mysvn表示访问路径
测试
5. 基于httpd的验证
使用htpasswd.exe
创建用户文件
htpasswd.exe –c D:\svn_au\passwd.conf root
root是用户名,自己设置。会让你输入密码
创建的时候,用户名必须设置一个
如果要添加新用户
htpasswd [-m] 你的用户文件所在路径,如E:\usr\Apache2.2\bin\passwd.conf 新用户名
-m表示使用md5加密。这个是可选的。
修改密码
htpasswd [-m] 你的用户文件所在路径,如E:\usr\Apache2.2\bin\passwd.conf 已经存在的用户。如果用户不存在,会创建新用户
删除用户,D必须大写
htpasswd –D E:\usr\Apache2.2\bin\passwd.conf username
修改http.conf,把刚才的<Location>配置,添加内容。
<Location /mysvn>
DAV svn
SVNPath D:\svn_test\svntest
AuthType Basic #使用简单的安全控制。基于账户密码。
AuthName "input password #输入密码的地方的对话
AuthUserFile D:/svn_au/passwd.conf #注意这里使用/,而不是\
Require valid-user #只有在用户验证成功才能访问
</Location>
注意上面的注释不要出现在实际的配置中。因为apache无法解析配置中的中文
测试
账号密码输入成功后
6. 基于组策略的安全控制
首先需要让 Apache 将 mod_authz_svn 模块加载进来。将apache配置中添加
LoadModule authz_svn_module modules/mod_authz_svn.so
修改Location的配置
<Location /mysvn/>
DAV svn
SVNListParentPath on #开启父目录功能
SVNParentPath D:\svn_test # 这里使用SVNParentPath代替了SVNPath,这个是所有版本库的父目录(这里的目录不再是单个svn库的目录了。每个svn库文件夹都在这个目录下面)。这里可能让多个版本库存在
AuthzSVNAccessFile D:/svn_au/bin/access.conf #访问策略。等下将给出里面内容
Satisfy Any
Require valid-user
AuthType Basic
AuthName "input password"
AuthUserFile D:/svn_au/passwd.conf
</Location>
策略文件
access.conf,r表示读权限,rw读写权限
[groups]
admin = root,liyixing
[/]
* = r
@admin = rw
解释:
配置组信息
[groups]
#组committers拥有用户paulex,richard
committers = paulex, richard
developers = jimmy, michel, spark, sean
#配置访问权限
#@xxx表示xxx组
#没有@符号的表示用户
#*表示所有用户
#[路径]对路径进行控制
#这里允许根路径的访问
[/]
* = r
@committers = rw
#针对版本库的配置
#[版本库:路径]
#[版本库:路径]
[mysvn:/a]
* = r
@committers = rw
7. 基于组策略的权限控制,添加用户
1. 增加用户
htpasswd [-m] 你的用户文件所在路径,如D:\svn_au\passwd.conf 新用户名名
查看自己的用户文件所在路径,可以查看httpd.conf,查找AuthUserFile
2. 添加用户到组,打开组文件,在相应的组中添加用户。如果忘记了自己的组文件所在路径,以查看httpd.conf,查找AuthzSVNAccessFile。重启apache
分享到:
相关推荐
接下来,我们将按照以下步骤进行Apache SVN服务器的搭建: 1. **下载与安装Apache**: - 首先,从Apache官方网站下载适合Windows系统的Apache服务器安装包,如httpd-x.y.z-win32.zip。 - 解压到你希望的安装目录...
3. **Subversion**:选择`Setup-Subversion-1.6.5.msi`作为服务端,这将安装SVN服务器组件。 4. **TortoiseSVN**:`TortoiseSVN-1.6.16.21511-win32-svn-1.6.17.msi`是一款流行的SVN客户端,提供图形化界面,方便...
以下是一个详细的Linux SVN服务器安装教程。 一、安装依赖库 在安装SVN之前,需要确保系统上已经安装了必要的依赖库。对于基于Debian或Ubuntu的系统,可以使用以下命令: ```bash sudo apt-get update sudo apt-...
"SVN服务器搭建和使用图文教程" 本教程将指导读者从零开始搭建和使用 SVN 服务器,包括下载和安装 VisualSVN Server 和 TortoiseSVN 客户端,创建版本库,使用 TortoiseSVN 客户端导入项目到版本库中。 知识点1:...
本文将详细讲解如何在Windows环境下搭建SVN服务器,并安装SVN客户端,以便进行项目管理和协同开发。 首先,了解SVN的基本概念。SVN全称为Subversion,它是一种用于管理文件和目录历史的系统,特别适用于软件开发中...
在Ubuntu操作系统下安装SVN服务器是一个较为直接的过程,虽然本指南针对的是Ubuntu 9.10版本,但其基本步骤对于大多数Ubuntu及其衍生版本都是适用的。SVN,即Subversion,是一种版本控制系统,广泛用于代码的版本...
通常,SVN服务器使用Apache的Subversion模块(mod_dav_svn)或TortoiseSVN的内置服务器(VisualSVN Server)。以VisualSVN Server为例,下载安装包后,按照以下步骤操作: 1. 运行安装程序,接受许可协议。 2. 选择...
本教程将详细介绍如何搭建Apache SVN和Trac环境,以及如何使用它们来有效地管理和协作开发项目。 首先,我们需要理解Apache SVN的基本概念。SVN是用于管理软件源代码的版本控制系统,它允许团队成员同时编辑同一份...
至于SVN服务器的设置,通常我们会使用Apache的Subversion服务器软件,如VisualSVN或CollabNet Subversion。以下是一般步骤: 1. **安装服务器软件**:下载并安装对应的SVN服务器软件,例如在Windows环境下,可以...
SVN 服务器搭建和使用教程 SVN(Subversion)是一种版本控制系统,广泛应用于软件开发、文档管理、项目协作等领域。下面是关于 SVN 服务器搭建和使用的详细教程。 下载和安装 VisualSVN Server 服务端 VisualSVN ...
首先需要下载 SVN 服务器,下载地址为 http://subversion.apache.org/packages.html。推荐使用 VisualSVN Server 服务端和 TortoiseSVN 客户端搭配使用。下载完成后,双击安装,按照提示完成安装。 2. 安装 ...
所需文件包和教程目录完全一致 subversion-1.8.18.tar.gz 下载地址:http://subversion.apache.org sqlite-autoconf-3190300.tar.gz 下载地址:http://www.sqlite.org apr-1.5.2.tar.gz,apr-util-1.5.4.tar.gz ...
【Svn服务器搭建简单教程】 Subversion(简称Svn)是一种广泛使用的版本控制系统,它能够帮助用户管理和跟踪项目源代码的变化。本教程将详细介绍如何在本地计算机上搭建一个简单的Svn服务器,以便进行团队协作和...
1. 选择SVN服务器软件:常见的有Apache Subversion(简称Apache SVN)、VisualSVN Server等。根据您的操作系统和需求选择适合的服务器软件。 2. 安装服务器软件:按照官方文档或网络教程进行安装,确保所有依赖项已...
压缩包内的"svn服务器,客户端及使用说明.part1.rar"可能包含详细的安装教程和客户端使用指南,这部分内容可以帮助初学者快速理解和上手SVN。而"svn服务器配置总结.txt"很可能是对上述配置过程的详细记录和总结,...
一、安装SVN服务器 首先,你需要下载适用于你操作系统的SVN服务器软件。在这个例子中,我们使用的是Setup-Subversion-1.6.16.msi,这是一个适用于Windows的安装程序。请根据你的实际需求选择对应的版本和平台进行...
#### 三、安装SVN服务器与客户端 1. **安装SVN服务器**: - 下载的SVN服务器通常是一个压缩包,将其解压到指定文件夹中。例如,解压至 `C:\dev\soft\svn-win32-1.6.5`,后续操作中以 `%SVNserver%` 表示此路径。 - ...