Daily Archives: August 27, 2005

subVersion 1.2.3 & Apache 2.0.54

1. 下载apache 2.0.54-win32 installer版 (http://httpd.apache.org/download.cgi),安装
note: 如果已开iis,先禁止之。

2. 下载svn-win32-1.2.3.zip,

http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91
2.1 解压缩至 c:program filessvn-win32-1.2.3目录
2.2 将sharelocale下面的删除掉,zh-CN在xp下运行不正常

3. 创建repository
svnadmin create d:/projects/pm

4. copy bin/mod_authz_svn.so 和bin/mod_dav_svn.so 到C:Program FilesApache

GroupApache2modules目录下
将bin/*.dll 复制 %apachedir%bin(实际上只要/bin/libdb43.dll复制过去就可以)

4.1 打开C:Program FilesApache GroupApache2conf下的httpd.conf
4.2 在# Dynamic Shared Object (DSO) Support段下,增加
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
note: 这两句必须加在 LoadModule dav_module modules/mod_dav.so之后,如果该语句被注释,则去掉注释;将dav_fs_module modules/mod_dav_fs.so的注释也去掉。

4.3 配置repository
htpasswd -cm d:/svn/svn-auth-file tong
new password:
confirm password:
htpasswd -m d:/svn/svn-auth-file new_user

在httpd.conf最后增加
#configuration for subVersion
<Location /svn>
    DAV svn
    SVNParentPath d:/svn
    AuthType Basic
    AuthName "Subversion repository"
    AuthUserFile d:/svn/svn-auth-file
    Require valid-user
    AuthzSVNAccessFile d:/svn/svn-access-file   
</Location>

svn-access-file结构

[svn1:/]               //这表示,仓库svn1的根目录下的访问权限
harry = rw             // svn1仓库harry用户具有读和写权限
sally = r               // svn1仓库sally用户具有读权限
[svn2:/]               //svn2仓库根目录下的访问权限
harry = r               // harry用户在svn2仓库根目录下只有读权限
sally =               // sally用户在 svn2仓库根目录下无任何权限
#[/]               // 这个表示在所有仓库的根目录下
#* = r               // 这个表示对所有的用户都具有读权限
#[groups]               // 这个表示群组设置
#svn1-developers = harry, sally           // 这个表示某群组里的成员
#svn2-developers = sally
#[svn1:/]           
#@svn1-developers = rw       // 如果在前面加上@符号,则表示这是个群组权限设置

5. 重启apache server
http://503.mygis.org/svn/测试

本文参考subversion 3.1.2 INSTALL, README
Qt中文论坛(qtcn.org)"Subversion版本管理器简单配置说明" by XChinux