本来想使用trac当做SVN的Issue Trace,但trac还是单项目模式,而且还是使用起来比较不习惯,所以暂时考虑SVN和BugFree的整合,目前两者只是用户名的整合,将来考虑是否整合进trac的形式,在BugFree的项目中直接看到Subversion库里的信息

使用的版本:
Windows SP1.5(sp1,后来打的几个补丁)
Subversion 1.2.0
BugFree 0.4
Apache 2.0.54
mod_auth_mysql.so 2.0.49(apache连接MySQL认证)
TortoiseSVN 1.2

SVN的用户管理其实有两个内容,一个是认证:检验用户名,密码是否正确,登录进SVN服务器;第二是权限:针对代码仓库Repository的读写权限分配。

一,首先按照SVN和Apache整合的文档,使用SVNParentPath方式,这样可以在这个目录下建立多个Repository。
我的所有操作全部是在本机进行的,有时会使用TortoiseSVN进行客户端的操作,其实完全可以使用SVN的命令行方式。

1,安装Subversion,apache,TortoiseSVN,建立D:\svntest\parent目录,这里将是SVN所有Repository的根目录,然后在parent目录下,创建a1目录,选中a1,右键菜单,选择TortoiseSVN中的“Create Repository here..”,创建一个基于FSFS的仓库。
2,修改httpd.conf,添加:

<Location /parentsvn>
 DAV svn
 SVNParentPath D:/svntest/parent
</Location>


3,在浏览器中浏览:http://127.0.0.1/parentsvn/a1/,可以看到正确的信息Revision 0。说明apache,SVN已经整合好了。

二,利用BugFree的用户认证

1,首先安装BugFree,保证BugFree能正常运行。其使用的数据库名是bugfree,存放u/p的字段是表buguser里的UserName,UserPassword字段。密码可以用多种方式加密,注意检查include\ConfigBug.inc.php里的$BugConfig["UserTable"]["EncryptType"]是否是md5。

2,解压mod_auth_mysql.so到apache/modules目录里。注意,mod_auth_mysql不是apache自带的,而是sf的一个项目,主页在http://modauthmysql.sourceforge.net/。目前版本已经到了3.0.0,下载下源码的话,自己需要编译,还需要apache的源码,比较麻烦。 不过已经有人编译好了相应的模块,在http://www.gknw.net/development/apache/httpd-2.0/win32/modules/下载。里面还有2.9.4版本的,但在我的安装中,始终不能正常。所以我只有使用了2.0.49,只是稍微有些设置不一样。

3,修改httpd.conf里的设置。

<Location /parentsvn>
 DAV svn
 SVNParentPath D:/svntest/parent
 
 AuthName "MySQL Testing"
 AuthType Basic
 Require valid-user

 AuthMySQLHost localhost
 AuthMySQLUser root
 AuthMySQLPassword xxxxxx

 AuthMySQLDB bugfree
 AuthMySQLUserTable buguser
 AuthMySQLNameField UserName
 AuthMySQLPasswordField UserPassword

 AuthMySQLMD5Passwords On
</Location>
</IfModule>


重启apache,你再次访问http://127.0.0.1/parentsvn/a1/,就弹出认证窗口了,输入用户名admin密码123456,就可以浏览了。

至此,SVN的用户已经和BugFree的用户整合在一起了。可以在BugFree系统中创建用户,修改密码了。

下一步需要做的是设置SVN中多用户,多Repository的访问权限控制。

全文完·非狐外传@2005年8月2日


3条评论

  1. 建议写一下图文并茂的安装说明. 这两个开源的产品结合在一起真的很不错的.

  2. subversion,bugfree的安装网上已经有很详细的文章了,所以这里重点就是放在两者的结合,其实关键是apache的mod_auth_mysql模块

  3. 在网上下载了几个mod_auth_mysql.so都无法使用,Apache2载入该模块即出错,查了些资料可能是编译针对不同版本MySQL库的原因,我使用的是mysql-4.0.20d-win

    http://www.gknw.net/development/apache/httpd-2.0/win32/modules/

    这个网址我无法访问? 请问能否共享一下你已下载的模块?谢谢

发表评论

评论也有版权!