




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Subversion 1.4.6 + apache 2.2.8 windows安装及配置环境 OS:Windows XP SP2 Web:Apache 2.2.6 SVN:svn-win32-1.4.6 一首先下载SVN及apache的两个WINDOWS版的安装包 apache2.2.8 svn-1.4.6-setup (服务器端) TortoiseSVN-0425-win32-svn-1.4.5(客户端) 我都是从CSDN下面下载下来的 安装SVN服务器端及客户端程序,傻瓜化的安装,一路NEXT就可以了 建立版本库(Repository) 首先建立D:svndepositorys作为所有版本库的根目录,然后可以用以下两种方式建立版本库 Cmd命令行下 svnadmin create D:svndepositorystest 也可以使用 TortoiseSVN 图形化的完成这一步:先建立空目录 E:svnrepos1 ,注重一定是要空的。然后在 repos1 文件夹上“右键-TortoiseSVN-Create Repository here.”,然后可以选择版本库模式,这里使用默认的FSFS即可,然后就创建了一系列文件夹和文件,同命令行建立的一样。 此时subversion 服务还没有启动,在命令行下输入以下命令 svnserve.exe daemon svnserve 将会在端口 3690 等待请求,-daemon(两个短横线)选项告诉 svnserve 以守护进程方式运行,这样在手动终止之前不会退出。注重不要关闭命令行窗口,关闭窗口会把 svnserve 停止。 当然最好使用-root选项设置根位置来限制服务器的访问目录,从而增加安全性和节约输入svnserve URL的时间 svnserve.exe -d -r D:svndepositorys 为了验证svnserve正常工作,使用TortoiseSVN - Repo-browser 来查看版本库。在弹出的 URL 对话框中输入: svn:/localhost/test 当然,localhost 也可以写成 或SVN所在电脑的IP 如没有弹出错误,正常显示,证明服务启动成功,只不过这时test只是一个空库 但是如果向这个空库里进行Import操作还是会出现验证失败的操作,Authorization failed.使用以下方法解决以下问题 修改配置文件使指定的用户才对SVN有访问权限 修改D:svndepositorystestconf下面的三个配置文件 Authz passwd svnserve.conf 以下我们将SVN配置成需要密码才能登录,账户admin,密码123456 Authz 权限配置文件 最后一行下加上 test:/ admin rw 详解: /svn/p1/WebProject king=rw(表示king能够读写/svn/p1/WebProject目录下的所有信息) /svn/p1/web zp=r(表示zp能够读/svn/p1/web目录下的所有信息) 到此svn服务器的的安装和配置就已经完成了。 MyProject:/ hadeslee = rw MyProject:/module1 tom=rw hadeslee=rw 这表示,MyProject下面的所有子目录hadeslee都是有权限读写的,但是tom只有权限读写此项目下面的module1目录,这个各自的访问权限就分的更细致了. 到MyProject:/module1导到有关于MyProject文件夹下面的设置,我们就告一段落了,我们现在开始设置apache,使它能和subvertion一起工作. Passwd 用户名及密码文件 最后一行下加上 admin = 123456 svnserve.conf SVN服务配置文件 将以下语句前的#号去掉,需要注意的是删除#号时要保证语句顶格,如在语句前有空格的话也会出现错误 # anon-access = read # auth-access = write # password-db = passwd # authz-db = authz # realm = My First Repository 改为 realm = test anon-access 控制非鉴权用户访问版本库的权限。取值范围为write、read和none。即write为可读可写,read为只读,none表示无访问权限。 缺省值:read auth-access 控制鉴权用户访问版本库的权限。取值范围为write、read和none。 即write为可读可写,read为只读,none表示无访问权限。 缺省值:write authz-db 指定权限配置文件名,通过该文件可以实现以路径为基础的访问控制。 除非指定绝对路径,否则文件位置为相对conf目录的相对路径。 缺省值:authz realm 指定版本库的认证域,即在登录时提示的认证域名称。若两个版本库的 认证域相同,建议使用相同的用户名口令数据文件。 缺省值:一个UUID(Universal Unique IDentifier,全局唯一标示)。 这时再次使用SVN客户端进行导入操作,svn://test提示输入用户名密码后即可导入成功 如果SVN只在本地(局域网内)使用的话,使用svn:/(SVN协议)来进行各种操作就可以了,如应用在公网上则必须则必须使用APACHE与其整合,以HTTP的方式来访问SVN服务器 Subversion的设计包括一个抽象的网络层,这意味着版本库可以通过各种服务器进程访问。理论上讲,Subversion可以使用无限数量的网络协议实现,目前实践中存在着两种服务器。 SVNServer:svnserve 是一个小的(也叫轻型的)、独立服务器,使用自己定义的协议和客户端。(作者注:以下称这种服务器为“svnserver服务器”,上面的安装配置就是安装svnserver服务器。) ApacheSVN:Apache是最流行的web服务器,通过使用 mod_dav_svn 模块,Apache可以访问版本库,并且可以使客户端使用HTTP的扩展协议WebDAV/DeltaV进行访问。(作者注:以下称这种服务器为“ApacheSVN服务器”) 通过 Http 协议访问版本库是 Subversion 的亮点之一。ApacheSVN服务器 具备了许多 svnserve服务器 没有的特性,使用上更加灵活,但是有一点难于配置,灵活通常会带来复杂性。 一、必备条件 为了让你的版本库使用HTTP网络,你必需具备以下几个条件: 配置好httpd 2.2.x,并且使用mod_dav启动。 为mod_dav安装mod_dav_svn插件。 配置你的httpd.conf,使http协议能访问版本库。 下面以我的配置过程具体讲解。 环境: OS:Windows XP SP2 Web:Apache 2.2.8 SVN:svn-win32-1.4.6 、安装 Subversion 将下载下来的 svn-win32-1.4.6.zip 直接解压即可,比如我解压到 e:subversion 。 从Subversion安装目录的 bin 子目录将 mod_authz_svn.so、mod_dav_svn.so及所有DLL文件拷贝到Apache的模块目录(Apache 安装目录的 modules 文件夹)。 三、基本的Apache配置 修改Apache的配置文件 httpd.conf ,使用LoadModule来加载mod_dav_svn模块。 将: #LoadModule dav_module modules/mod_dav.so 改成: LoadModule dav_module modules/mod_dav.so 即去掉前面的“#”号。 添加: LoadModule dav_svn_module modules/mod_dav_svn.so 一定确定它在 mod_dav 之后。 现在你已经设置了Apache和Subversion,但是Apache不知道如何处理 Subversion客户端,例如TortoiseSVN。为了让Apache知道哪个目录是用来作为Subversion版本库,你需要使用编辑器(例 如记事本)编辑Apache的配置文件。 在配置文件最后添加如下几行: DAV svn SVNPath e:/svn/repos1 这个配置告诉Apache首先需要启用 dav_module,然后加载 dav_svn_module 。版本库对外的URL是:http:/服务器IP/repository ,所有的Subversion版本库在物理上位于e:/svn/repos1 。 配置完毕后重新启动 Apache,打开浏览器,输入 http:/服务器IP/ repository 将会看到如下画面:(注意如果APACHE使用80端口启动的话,要确认无其它程序占用了80端口,如IIS等,这次做实验居然发现SKYPE如果在APACHE启动时开启了的话也无法启动。所以最好改成8080端口) 这表示 Apache 的 dav_svn 模块已经可以正常工作了。用户可以使用任何一种 Subversion 的客户端通过 Http 协议访问你的版本库。 假如想要指定多个版本库,可以用多个 Location 标签,也可以使用 SVNParentPath 代替 SVNPath,例如在 D:svndepositorys 下有多个版本库 test,work 等等,用如下方式指定: DAV svn SVNParentPath D:/ repository “SVNParentPath e:/svn ” 表示 D:/ repository 下的每个子目录都是一个版本库。可以通过 http:/服务器IP/svn/test,http:/服务器IP/svn/work 来访问。 现在你的版本库任何人都可以访问,并且有完全的写操作权限。也就是说任何人都可以匿名读取, 修改,提交,以及删除版本库中的内容(注:这时不需要配置E:svnreposconfsvnserve.conf 文件,并且也不需要启动E:subversionbinsvnserve.exe。因为提交是通过Apache的dav模块处理的,而不是由 svnservice处理。)。我们用 TortoiseSVN 客户端验证即知。 显然大部分场合这是不符合需求的。那么如何进行权限设置呢,Apache 提供了基本的权限设置: 四、认证选项 1、基本 HTTP 认证 最简单的客户端认证方式是通过 HTTP 基本认证机制,简单的使用用户名和密码来验证一个用户的身份。Apache提供了一个 htpasswd 工具来管理一个用户文件,这个文件包含用户名和加密后的密码,这些就是你希望赋予 Subversion 非凡权限的用户。htpasswd 可以在 Apache 的 bin 安装目录下找到。具体使用方法如下: 创建用户文件: htpasswd -c E:usrApache2.2binpasswd.conf username 添加新用户(-m 表示以 MD5 加密密码,可选项): htpasswd -m E:usrApache2.2binpasswd.conf Newusername 更改用户密码: htpasswd -m E:usrApache2.2binpasswd.conf username 删除用户(要用大写的 D ): htpasswd D E:usrApache2.2binpasswd.conf username 接下来修改 httpd.conf,在 Location 标签中加入如下内容: AuthType Basic AuthName svn repos AuthUserFile E:/usr/Apache2.2/bin/passwd.conf Require valid-user 说明: AuthType Basic:启用基本的验证,比如用户名/密码对。 AuthName svn repos:当一个认证对话框弹出时,出现在认证对话框中的信息。(最好用英文,TortoiseSVN 不支持中文,安装语言包除外。) AuthUserFile E:/usr/Apache2.2/bin/passwd:指定E:usrApache2.2binpasswd为用户文件,用来验证用户的用户名及密码。 Require valid-user:限定用户只有输入正确的用户名及密码后才能访问这个路径 重新启动 Apache ,打开浏览器访问版本库。Apache 会提示你输入用户名和密码来认证登陆了,现在只有 passwd 文件中设定的用户才可以访问版本库。也可以配置只有特定用户可以访问,替换上述 Require valid-user 为 Require user tony robert 将只有用户文件中的 tony 和 robert 可以访问该版本库。 有的时候也许不需要这样严格的访问控制,例如大多数开源项目答应匿名的读取操作,而只有认证用户才答应写操作。为了实现更为细致的权限认证,可以使用 Limit 和 LimitExcept 标签。例如: require valid-user 修改完成后如下 DAV svn SVNParentPath D:svndepositorys AuthType Basic AuthName svn AuthUserFile D:Program FilesApache Software FoundationApache2.2binpasswd.conf Require valid-user 试验成功 以上配置将使匿名用户有读取权限,而限制只有 passwd 中配置的用户可以使用写操作。 假如这还不能满足你的要求,你希望精确的控制版本库目录访问,可以使用 Apache 的 mod_authz_svn 模块对每个目录进行认证操作。 2、用 mod_authz_svn 进行目录访问控制 首先需要让 Apache 将 mod_authz_svn 模块加载进来。在 Subversion 的安装目录中找到 mod_auth_svn 模块,将其拷贝到 Apache 安装目录的 modules 子目录下。修改 httpd.conf 文件,添加: LoadModule authz_svn_module modules/mod_authz_svn.so 现在可以在 Location 标签中使用 authz 的功能了。一个基本的 authz 配置如下: DAV svn SVNParentPath e:/svn # our access control policy AuthzSVNAccessFile E:/usr/Apache2.2/bin/accesspolicy.conf # try anonymous access first, resort to real # authentication if necessary. Satisfy Any Require valid-user # how to authenticate a user AuthType Basic AuthName Subversion repository AuthUserFile E:/usr/Apache2.2/bin/passwd.conf AuthzSVNAccessFile 指向的是 authz 的策略文件,具体的权限控制可以在这个策略文件中指定。可以将D:svnsvndepositorysconfauthz这个文件复制过来,然后重命名后进行修改 test:/ chenjq = rw cjq = r 使用import进行测试,果然发现chenjq可以进行import,而cjq不行,但cjq依然可以进行访问(读的操作) test:/ chenjq = rw test:/part1 cjq = rw chenjq对test这个版本库有完全读写权限,而cjq只对其下的part1目录有读写权限,需注意的是 如果首次使用cjq import到 part1时会出现权限不足的情况,须使用chenjq先访问test版本库,再使用cjq import时即可 以(#)开头的行会被忽略;在它的简单形式里,每一小节命名一个版本库和一个里面的路径;认证用户名是在每个小节中的选项名;每个选项的值描述了用户访问版本库的级别:r(只读)或者rw(读写),假如用户没有提到或者值留空,访问是不答应的; * 表示所有用户,用它控制匿名用户的访问权限;符号区分组和用户。如: groups committers = paulex, richard developers = jimmy, michel, spark, sean / * = r committers = rw /branches/dev developers = rw /tags tony = rw /private * = committers= r 使用 SVNParentPath 代替 SVNPath 来指定多个版本库的父目录时,其中所有的版本库都将按照这个策略文件配置。例如上例中 tony 将对所有版本库里的 /tags 目录具有读写权限。假如要对具体每个版本库配置,用如下的语法: groups project1_committers = paulex, richard project2_committers = jimmy, michel, spark, tony, Robert repos1:/ * = r project1_committer = rw repos2:/ * = r project2_committer = rw 这样项目1的 project1_committer 组只能对 repos1 版本库下的文件具有写权限而不能修改版本库 repos2 ,同样项目2的 project2_commiter 组也不能修改 repos1 版本库的文件。 4、FAQ 1、路径或权限不足时将出现错误信息提示: http:/localhost (路径不对) Error * PROPFIND request failed on / PROPFIND of /: 200 OK (htt
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 地产保险考试题及答案
- 济南护理事业编考试题库及答案
- 中专护理实操考试题库及答案
- 张家界护理职称考试题库及答案
- 袋鼠科学考试题及答案
- 农牧合作社土地用途监管与使用协议
- 六年级写景作文南京玄武湖800字(7篇)
- 划拨土地买卖协议
- 秋日思念的深情抒情类作文15篇范文
- 技术支持流程标准话流程工具技术响应及时版
- 油气开采技术进步与挑战-洞察分析
- 小学生兴趣英语课件
- 【MOOC】国际金融学-湖南大学 中国大学慕课MOOC答案
- 九年级化学人教版基于特定需求设计和制作简易供氧器(教学设计)
- SCAMPER创新思维模型
- 乡镇庆中秋迎国庆活动方案
- 山东科学技术出版社小学一年级上册综合实践活动教案
- DL∕T 1281-2013 燃煤电厂固体废物贮存处置场污染控制技术规范
- 思念混声合唱简谱
- 家庭健康指导员培训方案及流程
- 机械制图教案(完整版)
评论
0/150
提交评论