1.准备
apache_2.2.14-win32-x86-no_ssl.msi
Setup-Subversion-1.6.6.msi
TortoiseSVN-1.6.6.17493-win32-svn-1.6.6.msi
SVNService.zip
2.安装apache
双击开始安装:
NetDomain,Server Name根据自己的条件选择
Administrator's Email填写管理员的邮箱,这样系统有问题的时候别人可以找到你。
选中For All Users,on Port 80,as a service - Recommanded,然后Next
(比如)安装目录选择在c:\Program File\Apache Software Foundation\Apache2.2
如果之前的安装顺利,那么在http://127.0.0.1/ 可以看到It works!的页面了。说明Apache已经正常安装好了。
【可能遇到的问题】
如果不能,检查apache service是否启动,如果apache service不能正常启动,用Test configuration 查明原因,比如80端口被占用,
去c:\Program File\Apache Software Foundation\Apache2.2\conf\htpd.conf 将80换成8082.然后start apache service.
再http://127.0.0.1:8082/访问
3.安装Subversion
注意选择Binding for Apache 2.2.x,
安装目录选择在c:\Program File\Subversion
测试Subversion是否正常安装:
a.建立文件夹D:\svn,在D:\svn中创建子文件夹svn_repository作为repository
b.在cmd中运行命令:c:\Program File\Subversion\bin\svnadmin.exe create D:\svn\svn_repository 创建版本库,默认为文件系统模式。
此时应该在D:\svn\svn_repository 目录下生成一系列文件,说明创建成功。
c.运行命令:c:\Program File\Subversion\bin\svnserve.exe -d -r D:\svn\svn_repository 启动Subversion
d.使用SVN命令测试Subversion是否启动好,新开一个cmd,运行命令:svn info svn://127.0.0.1/ 如果打印出subversion的一些路径版本等
信息则说明以上安装成功。
e.基本权限设置
修改D:\svn\svn_repository\conf目录下的三个文件:
svnserve.conf文件把
#anon-access = read
#auth-access = write
#password-db = passwd
#authz-db = authz
这四行的#去掉。
passwd文件后面添加:
admin = 123
authz文件后面添加:
[/]
* = r
admin = rw
这样我们就得到了一个可以具有读写权限的admin:123的帐号,在cmd窗口中ctrl+c 停止svnserve.exe
运行命令:c:\Program File\Subversion\bin\svnserve.exe -d -r D:\svn\svn_repository 并重新运行。
【可能遇到的问题】
运行svn info svn://127.0.0.1/ 提示“svn:认证失败”,去掉svnserve.conf文件的一下三行
anon-access = read
auth-access = write
password-db = passwd
的开头部分的空格。
f.将subversion 启动设为服务随机启动
解压SVNService.zip,将解压出的SVNService.exe 拷贝到c:\Program File\Subversion\bin
在cmd中运行命令: c:\Program File\Subversion\bin\svnservice -install --daemon --root "D:\svn\svn_repository"
去 Control Panel > Administrative Tools > Services, 双击 SVNService service, 将启动方式设为 automatic. 然后启动服务。
4.apache控制svn的访问。
首先停止c:\Program File\Subversion\bin\svnserve.exe -d -r D:\svn\svn_repository进程,
因为我们通过apache来访问subversion,而不再通过svnserve来访问。
修改c:\Program File\Apache Software Foundation\Apache2.2\conf\httpd.conf文件
取消
#LoadModule dav_module modules/mod_dav.so
#LoadModule dav_fs_module modules/mod_dav_fs.so
前面的#.
在这一部分的后面添加
LoadModule dav_svn_module c:/Program File/Subversion/bin/mod_dav_svn.so
LoadModule authz_svn_module c:/Program File/Subversion/bin/mod_authz_svn.so
或者
将c:/Program File/Subversion/bin/mod_dav_svn.so 拷贝到c:\Program File\Apache Software Foundation\Apache2.2\modules
将c:/Program File/Subversion/bin/mod_authz_svn.so 拷贝到c:\Program File\Apache Software Foundation\Apache2.2\modules
在这一部分的后面添加
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
在文件的最后添加:
<Location /svn>
DAV svn
SVNListParentPath on
SVNParentPath D:\svn
AuthType Basic
AuthName "Subversion repositories"
AuthUserFile c:\Program File\Apache Software Foundation\Apache2.2\passwd
#AuthzSVNAccessFile c:\Program File\Apache Software Foundation\Apache2.2\svnaccessfile
Require valid-user
</Location>
然后在目录c:\Program File\Apache Software Foundation\Apache2.2中使用
bin\htpasswd.exe -cm passwd admin
bin\htpasswd.exe -m passwd user1
来创建帐号admin和user1密码分123,321
此时:
访问http://127.0.0.1:8082/svn/,在弹出框中输入用户名和密码。就会看到svn_repository的目录。
现在我们完成了apache对于svn的访问。
5.对于权限的控制:
在c:\Program File\Apache Software Foundation\Apache2.2\conf\httpd.conf的最后去掉
#AuthzSVNAccessFile c:\Program File\Apache Software Foundation\Apache2.2\svnaccessfile前面的#。
c:\Program File\Apache Software Foundation\Apache2.2\svnaccessfile的内容如下:
[groups]
admin = admin
users = user1
anonym= dd
[/]
@admin = rw
@users = r
@anonym =
上面的内容表示任何人可读,admin组可写,anonym组无任何权限。
此文档参考过
http://hi.baidu.com/gzguoer/blog/item/6a59ad0e0383e5e136d122b8.html
http://www.robgonda.com/blog/index.cfm/2005/7/7/Subversion-up-and-running-in-30-minutes-or-less