[转]Win7 64位搭建本地SVN服务器 Apache+Subversion
2020-12-13 04:35
标签:style blog http color 使用 strong 转载地址:http://blog.sina.com.cn/s/blog_4f072a7001015j5z.html Subversion的版本和TortoiseSVN的版本配合很重要,并不是什么版本之间都可以正常使用的。 一路NEXT。本文安装至C:\xampp 一路NEXT。本文将subversion安装至C:\Subversion\ 如果本机安装有360安全卫士,则会出现警告,选择允许。 01、进入Sibversion的安装目录(本文为C:\Subversion\)。 为了使 Subversion 与 dav 模块通信,需要安装 mod_dav_svn 插件,可以在 Subversion 的安装目录C:\Subversion\bin中找到。将其拷贝到 Apache 安装目录的 modules 文件夹下。接下来就是配置 Apache 的 httpd.conf 文件,让 Apache 在启动的时候加载上述模块。 02、编辑Apache的httpd.conf(C:\xampp\apache\conf) 找到以下内容: #LoadModule dav_module modules/mod_dav.so 修改为: LoadModule dav_module modules/mod_dav.so 即去掉前面的注释符号“#”,没有上面这句,请自行添加。完成之后再后面继续添加如下内容: LoadModule dav_svn_module modules/mod_dav_svn.so 03、设置版本库目录: 本例中我在G盘创建了svn的管理目录,打算将版本库存放在G:\svn\project文件夹下,将如下代码添加进httpd.conf末尾。(复制代码时,注意修改”符号为英文半角) 重启Apache,至此本地环境完成。 说明: Subversion有两种运行方式,一种是基于Apache Http Server,另外一种是Subversion Standalone Server。 Apache Http Server是基于Apache Http Server的Subversion,这样做几个好处: 通过浏览器输入http://127.0.0.1/svn/访问版本库(一个初始版本库见下图): 一个初始版本库 这表示 Apache 的 dav_svn 模块已经可以正常工作了。用户可以使用任何一种 Subversion 的客户端通过 Http 协议访问你的版本库。 现在你的版本库任何人都可以访问,并且有完全的写操作权限。也就是说任何人都可以匿名读取,修改,提交,以及删除版本库中的内容。 先安装TortoiseSVN-1.6.16.21511-x64-svn-1.6.17.msi再安装中文语言包LanguagePack_1.6.16.21511-x64-zh_CN.msi 本文所用软件及其版本 注意:如果你的系统安装有卡巴斯基这类杀毒软件,请务必将TortoiseSVN安装目录bin目录下的TortoiseProc.exe设置为信任程序,否则可能导致在使用TortoiseSVN“导入”至版本库功能时发生错误。如图: 卡巴斯基 关于上文提到的trunk: 我们在一些著名开源项目的版本库中,通常可以看到trunk, branches, tags等三个目录。由于SVN固有的特点,目录在SVN中并没有特别的意义,但是这三个目录却在大多数开源项目中存在…(详细介绍) —————————————— END ———————————————— 通过上文的相关操作,任何人都可以匿名读取,修改,提交,以及删除版本库中的内容。显然大部分场合这是不符合需求的。那么如何进行权限设置呢,Apache 提供了基本的权限设置: 首先需要创建一个用户文件。Apache 提供了一个工具 htpasswd,用于生成用户文件,可以在 Apache 的安装目录下找到。具体使用方法如下: 01.创建passwd文件并添加用户/密码: svn的访问权限将由passwd文件中的用户名/密码来限制。 运行->cmd进入DOS命令操作窗口,并切换当前目录到C:\xampp\apache\bin,输入如下命令: htpasswd -c G:\svn\project\conf\passwd username passwd是文件名,username是你的用户名,根据实际需要自行命名,我们将文件创建到G:\svn\project\conf\目录下(相关目录请自行创建)。–c表示创建,第二次就不需要写–c了。(win平台默认对密码MD5加密) 具体操作如下图: 创建passwd文件并添加用户/密码 关于htpasswd命令更多其他操作请借助Google。 接下来修改 httpd.conf,在 Location 标签中加入如下内容: AuthType Basic 操作完成之后,重启Apache。 打开浏览器访问版本库。Apache 会提示你输入用户名和密码来认证登陆了,现在只有 passwd 文件中设定的用户才可以访问版本库。也可以配置只有特定用户可以访问,替换上述 “Require valid-user” 为 “Require user tony robert” 将只有 tony 和 robert 可以访问该版本库。 说明: 有的时候也许不需要这样严格的访问控制,例如大多数开源项目允许匿名的读取操作,而只有认证用户才允许写操作。为了实现更为细致的权限认证,可以使用 Limit 和 LimitExcept 标签。例如可以继续在 Location 标签中添加如下内容: 如上配置将使匿名用户有读取权限,而限制只有 passwordfile 中配置的用户可以使用写操作。如果这还不能满足你的要求,可以使用 Apache 的 mod_authz_svn 模块对每个目录进行认证操作。 02. 建立控制用户访问权限的文件authz 首先需要让 Apache 将 mod_authz_svn 模块加载进来。在 Subversion 的安装目录中找到 mod_auth_svn 模块,将其拷贝到 Apache 安装目录的 modules 子目录下。 然后修改 httpd.conf 文件,找到 LoadModule dav_svn_module modules/mod_dav_svn.so 在其后面加上 LoadModule authz_svn_module modules/mod_authz_svn.so 现在可以在 Location 标签中使用 authz 的功能了。一个基本的 authz 配置如下: 说明:AuthzSVNAccessFile “G:/svn/project/conf/authz” :指定用来存储访问版本库控制权限的文件。 这里的Apache配置文件中,不需要加入 这这里,Satisfy Any用于允许先用匿名方式尝试访问,并根据authz对匿名用户的控制给予访问权限。若没有这句话,则无论authz中是否加入了“*=r”的写法,匿名用户都是无法访问的。 AuthzSVNAccessFile 指向的是 authz 的策略文件,详细的权限控制可以在这个策略文件中指定,如: #两个分组:admin组,developers组 在 G:/svn/project/中新建一个记事本文件,文件名为authz,无后缀,输入下面的内容: [groups] 本范例只指定了一个管理员组,和一个管理员用户。 操作完成之后,重启Apache。 [转]Win7 64位搭建本地SVN服务器 Apache+Subversion,搜素材,soscw.com [转]Win7 64位搭建本地SVN服务器 Apache+Subversion 标签:style blog http color 使用 strong 原文地址:http://www.cnblogs.com/csshaw/p/3841050.html一、工具下载
二.安装XAMPP:
三.安装subversion:
四、配置Apache
DAV svn
SVNListParentPath on
SVNParentPath “G:/svn/project”
04、通过Http访问SVN服务器
五、安装TortoiseSVN:
六、测试SVN
关于SVN访问权限控制的介绍:
配置SVN访问权限
一.权限设置
AuthName “svn repos”
AuthUserFile “G:/svn/project/conf/passwd”
Require valid-user
require valid-user
DAV svn
SVNListParentPath on
SVNParentPath “G:/svn/project/”
AuthType Basic
AuthName “Subversion Repositories”
AuthUserFile “G:/svn/project/conf/passwd”
AuthzSVNAccessFile “G:/svn/project/conf/authz”
Satisfy Any
Require valid-user
[groups]
admin = FUCKGFW //管理员
developers = jimmy michel spark sean steven tony robert //开发者
#在根目录下指定所有的用户有读权限
[/]
* = r
#追加 committers 组用户有读写权限
@committers = rw
#在 branches/dev 目录下指定 developers 组的用户有读写权限
[/branches/dev]
@developers = rw
#在 /tags 组下给予用户 tony 读写权限
[/tags]
tony = rw
#禁止所有用户访问 /private 目录
[/private]
* =
#给 committers 组用户读权限
@committers= r
admin = FUCKGFW
[/]
* = r
@admin = rw
上一篇:Java学习11
文章标题:[转]Win7 64位搭建本地SVN服务器 Apache+Subversion
文章链接:http://soscw.com/essay/29629.html