基于svnserve的SVN服务器(windows下安装与配置)
关键字: svn

安装SVNserve

http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91得到最新版本的Subversion。 
如果你已经安装了Subversion,svnserve已经运行,你需要在继续之前把它停下来。

运行Subversion安装程序,如果你在你的服务器上运行,可以跳过第4步。

打开资源管理器,进入Subversion的安装目录(通常是C:Program FilesSubversion)的bin目录,找到文件svnserve.exe,intl3_svn.dll,libapr.dll,libapriconv.dll,libapriutil.dll,libdb*.dll,libeay32.dll和ssleay32.dll,复制这些文件,或所有bin目录内的文件到你的服务器目录,例如c:svnserve。

运行SVNSERVE

现在svnserve已经安装了,你需要在你的server运行它,最简单的方法是在DOS窗口或者windows快捷方式输入:

svnserve.exe --daemon
svnserve将会在端口3690等待请求,--daemon选项告诉svnserve以守护进程方式运行,这样在手动终止之前不会退出。

如果你没有创建一个版本库,根据下面的Apache服务器设置指令“配置”一节。

为了验证svnserve正常工作,使用TortoiseSVN → 版本库浏览器来查看版本库。

假定你的版本库位于c:reposTestRepo,你的服务器叫做localhost,输入:

svn://localhost/repos/TestRepo
当被版本库浏览器提示输入。

你也可以使用 --root 选项设置根位置来限制访问服务器的目录,从而增加安全性和节约输入 svnserve URL 的时间:

svnserve.exe --daemon --root drive:pathtorepositoryroot
以前面的测试为例,svnserve 现在的运行命令为:

svnserve.exe --daemon --root c:repos
然后在 TortoiseSVN 中我们的版本库浏览器 URL 缩短为:

svn://localhost/TestRepo
注意,当 svnserve 和版本库位于不同分区或盘符时也需要使用 --root 选项。

Svnserve 可以提供任意数量的版本库服务。只要将这些版本库放到你刚才定义的根目录下即可,然后使用相对于根的URL访问它们。

警告

不要创建和访问网络共享上的 Berkeley DB 版本库,它不能存在于一个远程的文件系统,即使是映射到盘符的共享。如果你希望在网络共享使用 Berkeley DB,结果难以预料-你可能会立刻看到奇怪的错误,也有可能几个月之后才发现数据库已经损坏了。

以服务形式运行SVNSERVE

使用普通用户直接运行 svnserve 通常不是最好的方法。它意味着你的服务器必须有一个用户登录,还要记着重新启动服务器后重新启动 svnserve。最好的方法是将 svnserve 作为 windows 服务运行。从 Subversion 1.4 开始,svnserve 可以安装为 windows 服务。

为了将 svnserve 安装为 Windows 服务,在一行内执行下面的命令,创建一个当 Windows 启动后,自动启动的服务。

sc create svnserve binpath= "c:svnservesvnserve.exe --service     --root c:repos" displayname= "Subversion" depend= tcpip start= auto
如果任一个路径包含空格,你必须使用双引号(逃逸字符)包含路径,例如:

sc create svnserve binpath= ""C:Program FilesSubversionbinsvnserve.exe"    --service --root c:repos" displayname= "Subversion" depend= tcpip start= auto
在创建服务以后,你还可以增加描述。它在 Windows 服务管理器中显示。

sc description svnserve "Subversion server (svnserve)"
注意 sc 的命令行很特殊。在 key= value 对中,key 与 = 之间不能有空格,但是在 value 之前,必须有空格。

提示

Microsoft 现在建议服务程序使用本地服务或网络服务帐户运行,参考 The Services and Service Accounts Security Planning Guide。以本地服务帐户创建服务,需要在上面的例子里追加下面几行。

obj= "NT AUTHORITYLocalService"
请注意需要给本地服务帐户一些目录的适当权限,包括的 Subversion 和你的版本库,还有所有钩子脚本使用的应用。此帐号的内置组名是"LOCAL SERVICE"。

服务安装完毕后,你需要在服务管理器中启动它(仅此一次;当服务器重启后它会自动启动)。

为了得到更详细的信息,可参考 Windows Service Support for Svnserve。

如果你已经使用 SvnService 包装安装了早期的 svnserve,现在想使用内置服务,那么你需要将其从服务中删除(切记先停止服务!)。使用简单的命令

svnservice -remove
即可删除服务。

SVNSERVE的认证

缺省的 svnserve 配置提供了匿名的只读访问。这意味着你可以使用 svn:// 的 URL 进行检出和更新,或者使用 TortoiseSVN 的版本库浏览器查看版本库,但是不能提交任何修改。

为了打开对版本库的写访问,你可以编辑版本库目录的conf/svnserve.conf文件,这个文件控制了svnserve守护进程的配置,也提供了有用的文档。

为了打开匿名的写访问,只需要简单得设置:

[general]anon-access = write
然而,你不会知道谁修改了版本库,因为svn:author属性是空的,你也不能控制谁来修改版本库,这是一个很危险的设置。

解决这个问题的一个方法是创建密码数据库:

[general]anon-access = noneauth-access = writepassword-db = userfile
这里的 userfile 与 svnserve.conf 文件在同一个目录,这个文件也可以存在于文件系统的其他地方(当多个版本库使用相同的访问权限时尤其有用),可以使用绝对路径,或者是 conf 的相对目录,使用 或盘符不能工作。userfile 的结构如下:

[general]anon-access = noneauth-access = writepassword-db = userfile
这个例子拒绝所有的未认证用户(匿名)访问,给 userfile 中的用户读写权限。

提示

如果使用相同的密码数据库维护多个版本库,使用一个认证域将让用户的工作更加简单,因为 TortoiseSVN 可以缓存你的凭证,所以你只需要输入一次,更多的信息可以参考 Subversion 手册的 创建用户文件和域 和 客户端凭证缓存。

使用SVN+SSH认证

另一种svnserve认证的方法是使用SSH来建立请求通道。

通过此方法,svnserve不会作为守护进程启动,而是SSH为你启动svnserve,以SSH授权用户运行,为此,你需要在你的服务器上有SSH守护进程。

It is beyond the scope of this documentation to detail the installation and setup of a secure shell, however you can find further information in the TortoiseSVN FAQ, SSH How-To. You can find other SSH topics within the FAQ by searching for “SSH”.

更多的关于svnserve的信息可以看《使用 Subversion 进行版本管理》。

SVNSERVE基于路径的授权
从Subversion1.3开始,svnserve支持与mod_authz_svn相同的路径为基础的授权模式,你需要编辑版本库路径下的conf/svnserve.conf引用的授权文件。
[general]authz-db = authz
在这里,authz是你创建用来定义访问权限的文件,你可以为每一个版本库使用单独的文件,或者为所有的版本库使用相同的文件,关于此文件的格式可以查看“路径为基础的授权”一节。

支持SASL

从 Subversion 1.5.0 开始,svnserve 和 TortoiseSVN 支持 svn:// 协议的 Cyrus SASL(简单认证和安全层)。你可以在 Subversion 程序笔记中找到更多信息:在 Subversion 中使用 Cyrus SASL 认证。

基于svnserve的SVN服务器(windows下安装与配置)的更多相关文章

  1. PHP学习之-Mongodb在Windows下安装及配置

    Mongodb在Windows下安装及配置 1.下载 下载地址:http://www.mongodb.org/ 建议下载zip版本. 2.安装 下载windows版本安装就和普通的软件一样,直接下一步 ...

  2. windows下安装和配置redis

    1.windows下安装和配置redis 1.1 下载: 官网(linux下载地址):https://redis.io/ Windows系统下载地址:https://github.com/MSOpen ...

  3. windows下安装和配置多个版本的JDK

    https://jingyan.baidu.com/article/47a29f2474ba55c015239957.html 如何在windows下安装和配置多个版本的jdk,本文将带你在windo ...

  4. 网络基础 Windows下安装和配置net-snmp 代理

    Windows 下安装和配置net-snmp 代理[摘录] by:授客 QQ:1033553122   A.   安装  1.   安装前准备 ActivePerl-5.10.0.1004-MSWin ...

  5. windows下安装和配置mongoDB

    上次在mac下安装和配置了mongodb,这次在windows下也尝试安装和配置mongodb. 1.首先下载mongodb压缩包,下载后解压到D盘或E盘.如下: 2.配置环境变量:桌面—计算机右键— ...

  6. windows下安装和配置SNMP

    window snmp服务开启及测试 转自:https://blog.csdn.net/qq_33314107/article/details/80031446 一 安装 二 开启服务 Linux下安 ...

  7. 烂泥:Windows下安装与配置Nginx web服务器

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. 前几篇文章,我们使用nginx都是在linux环境下,今天由于工作的需要.需要在windows环境也使用nginx搭建web服务器. 下面记录下有关ng ...

  8. Windows下安装和配置Apache2.2.22服务器+PHP5+Mysql5

    接下来,笔者将WindowsXP(Sp3)下,搭建和配置php运行环境做一个简单的介绍: 1.安装准备 1.1Apache下载,官方地址(http://httpd.apache.org/),此处笔者下 ...

  9. mysql数据库在windows下安装与配置

      mysql是一种开源源代码的关系型数据库系统(RDBMS),使用最常用的数据库管理语言--结构化查询语句(SQL)进行数据库管理. MySQL是开放源代码的,因此任何人都可以在General Pu ...

随机推荐

  1. 【LOJ】#2670. 「NOI2012」随机数生成器

    题解 矩阵乘法,注意需要快速乘 矩阵2*2 a c 0 1 代码 #include <iostream> #include <algorithm> #include <c ...

  2. span 超出内容自动换行

    <span style="width:80%;word-break:normal;display:block;word-warp:break-word;overflow:hidden; ...

  3. STM32 串口通信

    1. 中断说明 TXE(Tansmit Data Register empty interrupt) - 发送数据寄存器空,产生中断.当使能TXE后,只要Tx DR空了,就会产生中断.---写寄存器D ...

  4. Qt Creator在Windows上的调试器安装与配置

    如果安装Qt时使用的是Visual Studio的预编译版,那么很有可能就会缺少调试器(Debugger),而使用MSVC的Qt对应的原生调试器是CDB(对应MinGW的Qt使用GDB调试器).本文介 ...

  5. Oracle数据库DDL,DML,视图,PLSQL编程

    动手敲~~~ --创建一个表空间--beijing create tablespace beijing datafile 'c:\beijing.dbf' size 100m autoextend o ...

  6. Sting.format字符串格式化

    控制格式scanf printf 也不知道为什么=-= 越研究深层的java就越感觉它是从别的语言那抄袭来的

  7. mongodb cmd 常用命令

    如题,命令如下: 1.连接远程数据库命令 mongo -u admin -p admin 192.168.0.197:27017/test 2.查看当前版本 db.version(); 3.mongo ...

  8. Highmaps网页图表教程之数据标签与标签文本

    Highmaps网页图表教程之数据标签与标签文本 Highmaps数据标签 数据标签用于在地图图表上展现节点对应的数据.数据标签展现数据是静态的,只要节点一加载,数据标签就会出现在节点附近.在High ...

  9. Kubernetes1.3:POD生命周期管理

    转:http://blog.csdn.net/horsefoot/article/details/52324830 (一)  核心概念 Pod是kubernetes中的核心概念,kubernetes对 ...

  10. Django 模板中使用css, javascript

    Django 模板中使用css, javascript (r'^css/(?Ppath.*)$', 'django.views.static.serve', {'document_root': '/v ...