SVN:Subversion
目前最新版本是1.6.6,包含了Apache服务2.213,安装的时候默认一同安装,客户端使用TortoiseSVN-1.6.6。
软件在网上都可以免费下载,作为新手这里介绍一下我的SVN配置过程。
1、基本配置
1)、安装完成在浏览器输入http://localhost打开的网页显示“It works”表示Apache与SVN整合完成;
2)、发现安装完成之后无需重启电脑即可启动Apache服务;
3)、修改配置文件,即安装路径conf目录下的httpd.conf文件,发现mod_dav.so已经默认注册,只需打开mod_dav_fs.so前面的注释标记即可(大概在文件的85行左右);
4)、在指定版本库根目录下创建一个库,比如repo1;
5)、打开浏览器,输入地址:http://localhost/svn/repo1,这时应该能看到“repo1 - Revision 0:/”
2、配置权限
权限配置这里分为两种,一种是用户认证,一种是访问权限。在安装路径下的conf目录下的httpd.conf文件中注册Subversion浏览库和权限控制modules:
LoadModule dav_svn_modules/mod_dav_svn.so
LoadModule authz_svn_modules/mod_authz_svn.so
注意:mod_dav_fs.so和mod_dav.so必须被打开(前面基本配置的时候已经打开),且必须在mod_dav_svn.so和mod_authz_svn.so之前(可以将这两项放在所有dav之后)。
在进行权限配置之前,配置文件的最后一段如下所示:
<Location /svn>
DAV svn
SVNParentPath d:\svn_repository
</Location>
1)、身份认证配置
在配置文件最后的location段加入:
AuthUserFile (path)/passwd
passwd文件中包含对访问版本库的用户的管理,即所有用户及其密码。该文件就是一个文本格式的文件,可以任意编辑。如果密码未加密则内容如下所示
coyoo:123
tom:456
表示该文件中管理了两个用户coyoo和tom,他们的访问密码分别是123和456。如果要为用户创建不透明的密码,可以使用Apache的htpass命令,操作如下
打开命令行(DOS窗口CMD),
将当前目录切换到apache2目录(通常为安装路径\httpd\bin),
输入命令:
htpasswd.exe -c passwd coyoo
回车后在命令行提示以下内容,需要你两次输入为该用户创建的密码
Automatically using MD5 format.
New password: ****** (输入密码)
Re-type new password: ******
Adding password for user coyoo
这样就创建了一个passwd文件,并且有一个用户,即coyoo,他的密码已被加密。这里要注意的是在开始创建passwd文件的时候如果事先文件不存在需要使用“-c”参数,即表示初次创建密码文件;之后如果要添加其他用户则执行相同命令但不能再带此参数,否则即新建密码文件,密码加密以后如下所示:
coyoo:$apr1$enD0V98v$5hW6vOa9RnTfYIFnFXxIK.
将密码文件放在版本库根目录下即可。
2)、访问权限配置
同样在配置文件最后的location段加入:
AuthzSVNAccessFile (path)/authz
文件authz跟passwd一样属于文本文件,可以任意编辑,该文件一般包括两部分内容:
一部分是以[groups]定义开始的用户组,比如
[groups]
dev1 = coyoo
dev2 = tom,jacky
上面定义了两组用户即dev1和dev2。
另外一部分内容是对各个路径分配给用户以不同的访问权限,比如:
[\]
* = r
[\svn\svn_repository\prj1]
@dev1 = rw
@dev2 = r
[\svn\svn_repository\prj2]
@dev1 = rw
tom = rw
jacky = r
以上对3个路径进行了访问权限配置,跟路径所有用户有读的权限,prj1对于dev1用户组有读写权限,而对用户组dev2只有读权限,prj2对于用户组dev1有读写权限,而对于用户tom有读写权限,jacky只有读的权限。注意关键字“@”代表组。
经过权限配置后,配置文件最后一段location就如下所示:
#配置虚拟目录,表示访问配置库的url为:http://xxx.xxx.xxx/SVN
<Location /svn>
#引用远程访问模块,告诉Apache哪个模块负责服务像那样的URL
DAV svn
#配置版本库路径
SVNParentPath d:\svn_repository
#验证方式,启用基本的验证,用户名/密码验证
AuthType Basic
#项目的名称,当一个验证对话框弹出时,告诉用户这个验证是用来做什么的
AuthName "Subversion Repository"
#用户身份认证文件
AuthUserFile "d:\svn_repository\passwd"
#授权文件,指定authz来限定各个用户或组在版本库中目录的访问权限
AuthzSVNAccessFile "d:\svn_repository\authz.txt"
#只允许https方式访问
#SSLRequireSSL
#所有用户都需要身份验证,禁止匿名访问
Require valid-user
#允许匿名访问
#Satisfy Any
#为了让页面好看,Subersion自带或者用户自制的XSLT样式表
SVNIndexXSLT "\svnindex.xsl"
#允许访问/svn目录
#SVNListParentPath on
</Location>
文章评论(0条评论)
登录后参与讨论