1. 在VirtualBox虚拟机中安装好Win2003系统,打好升级补丁。
2. 防火墙设置:添加3690、8080、等要设置的端口到例外设置(这个很重要,要不然外部无法访问你的这些端口对应的服务)。
3. 下载Apache2.2.22 (httpd-2.2.22-win32-x86-openssl-0.9.8t.msi),安装到 D:\apache2.2
4. 下载svn-win32-1.7.3.zip,解压到D:\svn\svn_server
5. 创建SVN的仓库根目录D:\svn\svn_repository,在D:\svn\svn_repository下分别建repo1和repo2两个仓库目录。
6. 下载SVN的客户端操作工具:TortoiseSVN-1.7.5.22551-win32-svn-1.7.3.msi和SVN服务安装工具SVNService
7. 将SVNService.exe复制到D:\svn\svn_server\bin中,用cmd进入到该目录,然后使用命令:
SVNService -install -d -r D:\svn\svn_repository安装好svn服务(更改时用SVNService -setup -d -r c:\otherplace\svnrepo),此时SVN的监听目录设为了D:\svn\svn_repository
8. 创建真正的SVN创库:进入到D:\svn\svn_repository\repo1,使用TortoiseSVN在该目录
中执行创建SVN仓库的操作(Create repository here)来创建真正的仓库。用同样的方法
在repo2中进行建库。
9. 对数据仓库进行统一设置:(1)在D:\svn\svn_repository下创建passwd 用户帐号的密码
文件和创建autzh仓库授权文件 (都留它空白)。
(2)进入repo1和repo2中的conf目录,删除里面的passwd
和authz文件,对其中的svnserve.conf文件进行设置:
anon-access = none #意为未经授权,不能读定
auth-access = write #授权后可读可写
password-db = ../../passwd #引用上两目录中的passwd文件作为用户管理文件
authz-db = ../../authz #引用上两目录中的authz文件作为用户仓库授权文件
10. 复制D:\svn\svn_server\bin中的mod_authz_svn.so和mod_dav_svn.so到
D:\apache2.2\modules目录。
11. 复制D:\svn\svn_server\bin中的所有dll文件到D:\apache2.2\bin目录(相同的覆盖)。
12. 配置D:\apache2.2\conf中的httpd.conf文件:
(1)去除LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so这两行前面的#号
(2)接着上两行添加:LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
(3)在httpd.conf最后面添加两个仓库的访问配置:
<Location /repo1>
DAV svn
SVNPath "D:\svn\svn_repository\repo1"
AuthType Basic
AuthName "Subversion repositories"
AuthUserFile "D:\svn\svn_repository\passwd"
AuthzSVNAccessFile "D:\svn\svn_repository\authz"
Require valid-user
</Location>
<Location /repo2>
DAV svn
SVNPath "D:\svn\svn_repository\repo2"
AuthType Basic
AuthName "Subversion repositories"
AuthUserFile "D:\svn\svn_repository\passwd"
AuthzSVNAccessFile "D:\svn\svn_repository\authz"
Require valid-user
</Location>
13. 修改httpd.conf中的apache监听端口:Listen xxxx
14. 配置passwd文件:
htpasswd -b D:\svn\svn_repository\passwd User1 123456 ,
htpasswd -b D:\svn\svn_repository\passwd User2 654321 ,
以上命令是在原有密码文件中增加两个用户User1和User2,默认采用MD5加密方式
15. 配置authz文件:
[/]
*= #根目录任何人都不可读和写
[repo1:/]
*= #未授权不可读写
User1=r #User1对该仓库可读,不可写
User2=rw #User2对该仓库可读可写
[repo2:/]
*=
User1=rw
User2=rw
16. 重启SVN服务和重启Apache服务器。
17. 通过TortoiseSVN客户端工具,输入http://192.168.1.101:xxxx/repo1就能访问repo1创库。