目标:
1、在windows 2003 server上建立公司版本服务器
2、要求支持多个版本库,每个版本库需要有独立的用户权限管理
3、要求接入方式可采用http ssl方式
 
使用的各软件如下:
1、Apache  2.0.59 no ssl版本,由于美国出口管制,Apache的可下载版本不能集成ssl。
     注意为了和下面的svn server配合,apache的版本只能是2.0.x
2、Svn Server 1.4.3
3、Tortoise SVN 1.4.3,有中文语言包,需要的可以下载。
4、Open ××× 2.0.9,主要是用来制作证书用的
 
从网上下载安装以上四个软件。现在开始配置:
1、建立SVN库目录。我的目录是F:\SVNROOT,在SVNROOT目录下建立TestLib子目录,然后右键点击TestLib目录,通过TortoiseSVN的菜单创建版本库,TortoiseSVN提供了“本地文件系统”和“berkeley数据库”两种方式,用任何一种建立版本库都是可以的。
 
2、打开F:\SVNROOT\TestLib\conf目录下的svnserve.conf文件,找到
# anon-access = read
# auth-access = write
将之改为:
  anon-access = none
  auth-access = write
这表示我们不允许TestLib库匿名访问,同时写库也必须要授权访问。
 
3、建立你的访问TestLib的第一个用户,运行:
"C:\Program Files\Apache Group\Apache2\bin\htpasswd" -cm "F:/SVNROOT/TestLib/conf/svn-auth-file.ini" user1
输入密码后即可。
 
如果要建立更多用户,注意将 -cm 选项改为 -m
 
4、更新Apache httpd.conf参数。打开
C:\Program Files\Apache Group\Apache2\conf\httpd.conf文件,找到:
#<Location /server-info>
#    SetHandler server-info
#    Order deny,allow
#    Deny from all
#    Allow from xxxx.com
#</Location>
在其后添加:
<Location /TestLib>
  DAV svn
  SVNPath F:/SVNROOT/TestLib
  AuthType Basic
  AuthName "Subversion repository"
  AuthUserFile F:/SVNROOT/TestLib/conf/svn-auth-file.ini
  Require valid-user
</Location>
在Location中还有一个 AuthzSVNAccessFile 参数,是可以用来控制svn-auth-file.ini
中的用户read、write权限的,之后我再单独介绍。
 
5、重启Apache Server。windows桌面右下角有Apache Monitor图标,通过它就可以重启Apache。
 
6、为了验证TestLib版本库是否已经可以使用,你可以在另外一台PC上,安装TortoiseSVN。然后随便打开一个文件夹,在空白处点右键,执行弹出菜单上的“TortoiseSVN\版本库浏览器”功能,输入 [url]http://22.144.20.115/TestLib[/url],其中22.144.20.115是我这边的Server IP,你需要将之改为自己的Server IP,确定后,输入在第三步建立的用户名和密码,如果能成功进入,就表示TestLib版本库可以使用了。
 
根据以上的介绍,你完全可以再建立出N个不同的版本库来。
 
如何配置以 [url]https://22.144.20.115/TestLib[/url]方式通过证书来访问SVN版本库,将在以后再介绍。
 
(待续)