Apache + Subversion 配置方法简要说明
1. 安装Apache
这个没什么好说的,直接到官网下载。安装完成后默认用的 80端口,如果不想用 80 端口可以改 httpd.conf
2. 安装 Subversion
下载 Subversion for windows。安装,没什么好说的。
3. 把 Subverion 整合到 Apache
把 Subversion\bin 下面 mod_authz.svn.so, mod_dav_svn.so, libdb44.dll 复制到 Apache目录下的 modules 里。
然后打开 httpd.conf
首先打开 下面两项,把前面的 # 去掉
LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so
再增加两行,把 Subversion 的插件加载进去
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
进入命令行,为你所有项目建立一个根,比如: D:\svnroot
然后再在 httpd.conf 的最后加上 svn 的配置
<Location /svn>
DAV svn
SVNParentPath d:\svnroot
SVNListParentPath on
AuthType Basic
AuthName "Subversion repository"
AuthUserFile D:\svnroot\passwd
#passwd问密码和用户文件,用来验证用户的用户名及密码
AuthzSVNAccessFile d:\svnroot\svnaccessfile
#权限控制文件,限定各个用户或组在版本库中目录的访问权限
Require valid-user
</Location>
SVNParentPath 是指以多项目方式管理 后面的路径是项目的根目径
AuthType 认证方式
AuthUserFile 是用户名和密码的文件
AuthzWVNAccessFile 是用户权限文件
4. 创建代码仓库
进入命令行。在 svnroot 下创建项目代码仓库
Svnadmin create d:\svnroot\test1
Test1 为你的项目名
5. 用户与密码管理
在命令行用 apache\bin 下的 htpasswd 来创建用户认证文件
Htpasswd -c d:\svnroot\passwd admin
-c 为创建,如果 passwd 不会空时,会删除重新建立,这里要小心
Htpasswd d:\svnroot\passwd user1 为user1 指定密码
Passwd 的文件名和路径要求和 httpd.conf 里定义的一样
6. 权限管理
文件名和路径也要求和 httpd.conf 里定义的一样。
权限文件的定义如下:
[groups]
admin = admin
users = user1,user2,user3,user4
[test1:/]
* =
@admin = rw
@users = rw
[test2:/]
* =
@admin = rw
@users = rw
[test3:/]
* =
@admin = rw
首先是把人分组,然后指定组的权限
结点名称的格式为:
[项目名:路径]
各个组的权限 r 可读 w 可写
如
[test1:/] 项目名 test1 根路径
@admin= rw admin组 可读写
@users = r users 组 只读
补记
SVNService + SVNServer 和 Apache +插件 的方式有什么不同
第一种的 url 是 svn://ip/项目名 这样
第二种可以完全走 http/https 协议,可以做到远端访问与浏览器查看。

