基于svnserve的SVN服务器(windows下安装与配置)
基于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下安装与配置)的更多相关文章
- PHP学习之-Mongodb在Windows下安装及配置
Mongodb在Windows下安装及配置 1.下载 下载地址:http://www.mongodb.org/ 建议下载zip版本. 2.安装 下载windows版本安装就和普通的软件一样,直接下一步 ...
- windows下安装和配置redis
1.windows下安装和配置redis 1.1 下载: 官网(linux下载地址):https://redis.io/ Windows系统下载地址:https://github.com/MSOpen ...
- windows下安装和配置多个版本的JDK
https://jingyan.baidu.com/article/47a29f2474ba55c015239957.html 如何在windows下安装和配置多个版本的jdk,本文将带你在windo ...
- 网络基础 Windows下安装和配置net-snmp 代理
Windows 下安装和配置net-snmp 代理[摘录] by:授客 QQ:1033553122 A. 安装 1. 安装前准备 ActivePerl-5.10.0.1004-MSWin ...
- windows下安装和配置mongoDB
上次在mac下安装和配置了mongodb,这次在windows下也尝试安装和配置mongodb. 1.首先下载mongodb压缩包,下载后解压到D盘或E盘.如下: 2.配置环境变量:桌面—计算机右键— ...
- windows下安装和配置SNMP
window snmp服务开启及测试 转自:https://blog.csdn.net/qq_33314107/article/details/80031446 一 安装 二 开启服务 Linux下安 ...
- 烂泥:Windows下安装与配置Nginx web服务器
本文由秀依林枫提供友情赞助,首发于烂泥行天下. 前几篇文章,我们使用nginx都是在linux环境下,今天由于工作的需要.需要在windows环境也使用nginx搭建web服务器. 下面记录下有关ng ...
- Windows下安装和配置Apache2.2.22服务器+PHP5+Mysql5
接下来,笔者将WindowsXP(Sp3)下,搭建和配置php运行环境做一个简单的介绍: 1.安装准备 1.1Apache下载,官方地址(http://httpd.apache.org/),此处笔者下 ...
- mysql数据库在windows下安装与配置
mysql是一种开源源代码的关系型数据库系统(RDBMS),使用最常用的数据库管理语言--结构化查询语句(SQL)进行数据库管理. MySQL是开放源代码的,因此任何人都可以在General Pu ...
随机推荐
- php单双引号嵌套解决方案
代码如下: <?php $path = "./"; function show_files($path){ //下面是单双引号嵌套解决方案 //echo "< ...
- HTML--1
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- bms_output.put_line使用方法
https://blog.csdn.net/sxww321/article/details/4020300
- IAR环境搭建注意点
1. include文件添加 Options->C/C++ Compiler 中的Preprocessor中增加一般的头文件 同时 在Assembler中的Preprocessor标签下添加$P ...
- Bomb HDU 3555 dp状态转移
题目:http://acm.hdu.edu.cn/showproblem.php?pid=3555 题意: 给出一个正整数N,求出1~N中含有数字“49”的数的个数 思路: 采用数位dp的状态转移方程 ...
- WebApi入门
饮水思源 http://www.cnblogs.com/guyun/p/4589115.html http://www.cnblogs.com/chutianshu1981/p/3288796.htm ...
- [leetcode shell]192. Word Frequency
统计words.txt中每个单词出现的次数并排序 解法1: cat words.txt | tr -s ' ' '\n' | sort | uniq -c | sort -r | awk '{prin ...
- 模型构建<1>:模型评估-分类问题
对模型的评估是指对模型泛化能力的评估,主要通过具体的性能度量指标来完成.在对比不同模型的能力时,使用不同的性能度量指标可能会导致不同的评判结果,因此也就意味着,模型的好坏只是相对的,什么样的模型是较好 ...
- poj 3463 最短路+次短路
独立写查错不能,就是维护一个次短路的dist 题意:给定一个有向图,问从起点到终点,最短路+比最短路距离长1的路的个数. Sample Input25 81 2 31 3 21 4 52 3 12 5 ...
- 2013年JavaScript开发人员调查结果
JavaScript开发人员调查现在已经结束,一如既往社区对结果进行了进一步分析: 总结(汉语) 原始数据(电子表格) 2012年结果 51%的被参与者写客户端代码,而28%的人说他们编写服务器端代码 ...