一基本安装配置
Web务器的选择
Subversion 建立在一个可移殖的 layer 称为 APR (Apache Portable Runtime 链接库) 上 这表示 Subversion 应该可以在任何可以执行 Apache 的 httpd 服务器的操作系统上 Windows Linux 所有的 BSD 分支 Mac OS X Netware 等目前使用最为广泛的Web服务器是Apache 和IIS两者都可以工作在Windows Server 下其中Apache 和Subversion的配置最为简单安全高效所以本文选择使用Apache 服务器的 版本作为Web服务器
本文使用软件版本
以下是本文件使用的作业环境与软件版本
* Windows Server R
* Apache HTTP Server v
* Subversion v
安装配置Apache服务器
在到 下载 Apache HTTP Server 版 for Windows 的版本笔者使用的版本是 apache_winxno_sslmsi
安装过程很简单就不赘述了这里介绍几个注意事项
但安装之前请先检查你的服务器是否安装 IIS由于 Apache 预设使用 端口会跟 IIS 的网站沖突你必须把 IIS 的 Web 站台关闭再安装 Apache HTTP服务器
注意如果使用Windows XP的话没有安装SP将会导致不正常的网络传输从而搞坏你的版本库
Apache低于的版本不能与Subversion 一起工作因为Apache低于的Windows版本的编译存在问题
安装 Subversion
在 下载最新版的 Subversion笔者下载的是svnsetupexe安装过程比较简单这里笔者就不赘述了安装完成后在Dos命令行下使用命令svn –version检查如果出现图 界面表示安装成功
图 检查svn是否安装成功
复制和修改Apache服务器配置文件
通过 Http 协议访问版本库是 Subversion 的亮点之一使用 Http 协议意味着只需要打开浏览器输入 URL 即可轻松的浏览整个版本库由于 Subversion 需要版本化的控制因此标准的 Http 协议不能满足需求要让 Apache 与 Subversion 协同工作需要使用 WebDAV(Web 分布式创作和版本控制)WebDAV 是 HTTP 的扩展关于 WebDAV 的规范和工作原理可以参考 IETF RFC 为了使 Subversion 与 dav 模块通信需要安装 mod_dav_svn 插件可以在 Subversion 的安装目录中找到将其拷贝到 Apache 安装目录的 modules 文件夹下接下来就是配置 Apache 的 文件让 Apache 在启动的时候加载上述模块步骤如下
* 把svn/bin/目录下的 mod_dav_svnso mod_authz_svnso复制到Apache服务器的/modules/目录下
* 把 SVN/bin/目录下所有的dll链接文件复制到 Apache服务器/bin/目录下
* 修改Apache服务器的配置文件
先找到以下两行
#LoadModule dav_module modules/mod_davso#LoadModule dav_fs_module modules/mod_dav_fsso
把前面dav_svn_module的 # 字符删除然后把下面几行文字加到这群 LoadModule 指令的最后
LoadModule dav_svn_module modules/mod_dav_svnsoLoadModule authz_svn_module modules/mod_authz_svnso
然后最后加入几行
<Location /svn>DAV svn
SVNParentPath d:\svn
</Location>
表-是apache服务器配置文件中svn相关文件的解释
建立版本库目录
建立一个 Subversion 的版本库出乎意料地简单 Subversion 所提供的 svnadmin工具 有个专门处理这件事的子命令 要建立一个新的档案库 只要执行命令
$ svnadmin create path/to/repos
这会在目录 path/to/repos 里建立一个新的档案库使用系统命令建立版本库目录如图
图 使用系统命令建立版本库说明 svnadmin 命令是系统管理员最好的朋友 除了可以建立 Subversion 档案库 这个程序还可以让你对档案库进行几种维护动作 svnadmin 常用子命令如表-
表- svnadmin 常用子命令
添加版本库文件
使用如下命令建立版本库文件
md tmpcd\tmpmd ProjectAmd ProjectA\trunkmd ProjectA\branchesmd ProjectA\tagssvn import //localhost/svn m Initial repository layout
重新启动Apache服务器进行测试
配置完毕后重新启动 Apache打开浏览器输入//服务器IP/repos 将会看到如图画面
图 成功建立版本库界面
二使用SSL安全连接
Apache服务器缺省并不支持SSL但是你可以从其他地方下载安装
首先你需要一些文件来开启SSL你可以在找到这些包只需要解压缩这些文件然后将mod_sslso拷贝到Apache的modules目录将文件opensslexe拷贝到bin目录将文件conf/nf拷贝到Apache的conf目录
使用文本编辑器打开Apache的conf目录的nf
注释掉(使用#)下面几行
DocumentRoot c:/apache/htdocsServerName :ServerAdmin ErrorLog logs/error_logTransferLog logs/access_log
此行
SSLCertificateFile conf/sslcrt/servercrt改为SSLCertificateFile conf/ssl/myservercert此行SSLCertificateKeyFile conf/sslkey/serverkey改为SSLCertificateKeyFile conf/ssl/myserverkey此行SSLMutex file:logs/ssl_mutex改为SSLMutex default
删除下面两行
<IfDefine SSL>
</IfDefine>
打开Apache配置文件()并且去掉此行的注释
#LoadModule ssl_module modules/mod_sslso
Openssl需要一个配置文件你可以从下载一个正在使用的请注意f类型的文件尽管是普通的文本文件Windows对这种文件会特别处理!
然后你需要创建一个SSL证书为此打开一个命令行窗口进入apache目录(例如C\program files\apache group\apache)然后输入下面的命令
bin\openssl req config bin\f new out myservercsr
你会被讯问密语请不要使用简单的单词而是使用整段话例如一段诗越长越好你也需要输入server的URL其他所有问题都是可选的但是我们建议你最好输入这些信息
通常会自动产生privkeypem文件但是如果没有请输入下面的命令生成它
bin\openssl genrsa out privkeypem
然后输入这个命令
bin\openssl rsa in privkeypem out myserverkey
并且输入(在同一行)
bin\openssl x in myservercsr out myservercertreq signkey myserverkey days
这样会创建一个在天里过期的证书最后输入
bin\openssl x in myservercert out myserverdercrt outform DER
这些命令在Apache目录(myserverdercrtmyservercsrmyserverkeyrnd privkeypemmyservercert)里创建了一些文件拷贝这些文件到目录conf/ssl(例如C\program files\apache group\apache\conf\ssl)-如果这个目录不存在你需要首先创建一个
重启apache服务
将你的浏览器指向https://servername/svn/project ……
关闭不安全连接方法
你设置了SSL让你的版本库更安全你一定希望关闭普通的非ssl访问为此你需要在Subversion的<Location> 增加指示SSLRequireSSL一个<Location>实例就像这个样子
<Location /svn>DAV svn
SVNParentPath D:\SVN
SSLRequireSSL
AuthType Basic
AuthName Subversion repositories
AuthUserFile passwd
#AuthzSVNAccessFile svnaccessfile
Require validuser
</Location>
总结
到此为止在版本控制工具Subversion在Windows Server 下的安装基本介绍完了如果您希望获得更好的安全性能可以考虑使用使用Windows域认证