Windows下搭建和配置Subversion服务器(CollabNetSubversion-server-1.5.4-1.win32.)

1、软件下载

下载Subversion服务器程序。

到http://subversion.tigris.org/ 的下载二进制安装文件,Windows部分下载,http://www.collab.net/downloads/subversion/ 。
我下载的是CollabNetSubversion-server-1.5.4-1.win32.exe。

2、服务器和客户端安装

Subversion1.5版本的安装包自带了Apache2.2.8,所以无需额外安装Apache服务器。

一路默认安装,如果需要修改仓库根目录或者Apache2.2.8端口可以自行修改为自己的信息,Apache默认端口为80,Subversion默认仓库存储路径为C:svn_repository可自由设定仓库存储路径(E:/svn_repository)。
安装的过程中会自动将Subversion和Apache注册成服务,安装完成后重启一下电脑,运行services.msc查看服务,可以看到 “Apache2.2”和“Subversion Server”两个服务已经自动启动,如果不想让他们自动启动,可以修改为手动启动。

3、建立版本库(Repository)

数据存储格式:Berkeley DB 和FSFS。
运行Subversion服务器需要首先要建立一个版本库(Repository),可以看作服务器上存放数据的数据库,在安装了Subversion服务器之后,可以直接运行,如:
svnadmin create E:/svn_repository/svndemo
(默认的数据存储方式FSFS,也可以通过--fs-type参数明确地制定文件系统类型,可选的值包括fsfs和dbd)。
就会在目录E:/svndemo/repository下创建一个版本库。
我们也可以使用TortoiseSVN图形化的完成这一步:

在目录E:/svndemo/repository下"右键->TortoiseSVN->Create Repository here...“, 然后可以选择版本库模式, 这里使用默认即可, 然后就创建了一系列目录和文件。
4,配置用户和权限

配置subversion

修改E:/svndemo/repository/conf目录下的文件svnserve.conf:

#没通过验证,则无任何权限
#anon-access = none
#通过验证,最多可获得写权限
#auth-access = write
#验证文件的位置
#password-db = passwd
#权限配置文件的位置
#authz-db = authz

去除行开头的注释关键字,并设置为:

anon-access = none
auth-access = write
password-db = passwd
authz-db = authz

创建权限策略文件authz:(在svnserver.conf同目录下有authz文件,修改anthz)

[groups]

admin = admin,root

#关键字“@”代表组

[svndemo:/]

@admin = r

guest = rw
[/svndemo:/Trunk]
@admin = r

如果使用svn://localhost/方式连接版本库,则设置如下内容:
然后修改同目录的passwd文件,去掉下面三行的注释:
# [users]
# harry = harryssecret
# sally = sallyssecret
最后变成:
[users]
harry = harryssecret
sally = sallyssecret
在passwd文件中,“=”前的字符就是用户名,后面的就是密码。还要注意“[users]”前面的注释“#”一定要删除掉

如果使用http://localhost/svn/svndemo方式连接版本库,则设置如下内容:

用apache htpasswd 建立用户密码文件,并添加用户密码到密码文件中:

首次创建一个新的认证文件并在其中添加一条用户aa的记录,密码将被提示输入。

htpasswd -c E:/svn_repository/svndemo/.htpasswd aa

(在E:/svn_repository/svndemo目录下会生成一个.htpasswd文件,存放用户aa和aa的密码)
添加或修改用户aa的密码。密码将被提示输入。在Windows平台上,密码将使用Apache修改过的MD5算法进行加密;在其它平台上将使用crypt()进行加密。如果指定的文件不存在,htpasswd将只返回一个错误代码,而不做其它任何事:

htpasswd E:/svn_repository/svndemo/.htpasswd aa

在Apache/conf/httpd.conf中注册Subversion浏览库和权限控制moudle:

LoadModule
dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

注意:mod_dav_fs.so 和mod_dav.so必须被打开(去掉开头的注释关键字“#”),且必须在mod_dav_svn.so
和mod_authz_svn.so之前

#LoadModule dav_fs_module modules/mod_dav_fs.so
#LoadModule dav_module modules/mod_dav.so

在Apache/conf/httpd.conf中添加Location:

#表示访问配置库的url为:http://xxx.xxx.xxx/SVN

#告诉Apache哪个模块负责服务像那样的URL

DAV svn

#配置库路径:

SVNParentPath E:/svn_repository

#启用基本的验证,用户名/密码验证

AuthType Basic

#当一个验证对话框弹出时,告诉用户这个验证是用来做什么的

AuthName "svn repos"

#身份验证文件的路径

AuthUserFile E:/svn_repository/svndemo/.htpasswd

#指定authz来限定各个用户或组在版本库中目录的访问权限

AuthzSVNAccessFile E:/svn_repository/svndemo/conf/authz

#只允许https方式访问

#SSLRequireSSL

#Subersion自带的XSLT样式表

#SVNIndexXSLT "/svnindex.xsl"

#允许匿名访问

#Satisfy Any

#禁止匿名访问

Require valid-user

#允许访问/svn目录

SVNListParentPath on

5,运行独立服务器

运行apache服务器,使用http://svn服务器IP/svn/svndemo 连接服务器

单独运行svn服务的话在任意目录下运行: svnserve -d -r E:/svndemo/repository 我们的服务器程序就已经启动了。注意不要关闭命令行窗口,关闭窗口也会把svnserve停止。

6Subversion控制中文目录的访问权限

方法很简单,就是将你的权限控制文件的格式转换为无BOM的UTF-8格式,
将权限文件改成UTF-8格式,我使用的是UltraEdit的菜单"ASCII to UTF-8 (Unicode
Editing)"。

本文出自 51CTO.COM技术博客

你可能感兴趣的:(Windows下搭建和配置Subversion服务器(CollabNetSubversion-server-1.5.4-1.win32.))