2008-08-25

SVN + apache + mysql认证

为了让svn能够利用apache2模块启动,所以需要在apache中加入
mod_dav

另外,为了实现数据库认证,还需要增加两个模块给apache2:

LoadModule authn_dbd_module  libexec/apache22/mod_authn_dbd.so
LoadModule dbd_module  libexec/apache22/mod_dbd.so

OK
搞定了apache之后,开始编译svn的port。只需要mod_dav和apache_apr两个模块就行了。

之后的在 ..../etc/apache22/Include目录下添加svn.conf

# mod_dbd configuration DBDriver mysql DBDParams "host=localhost user=xxx pass=xxx dbname=xxx" DBDMin  4 DBDKeep 8 DBDMax  20 DBDExptime 300 <Location /internal>   DAV svn   SVNPath /var/svn/internal   AuthType Basic   AuthName "Internal SVN"   AuthBasicProvider dbd   # core authorization configuration   Require valid-user   AuthDBDUserPWQuery \     "SELECT password FROM user WHERE  email = %s" #  AuthUserFile /var/svn/etc/svn-auth-file   AuthzSVNAccessFile /var/svn/etc/internal-access-file   Require valid-user </Location>
接下来,就是数据库了,无论你怎么搞数据库关键在于那句select,没错,apache需要自己独特的password加密方案,这就是php语句的:
'{SHA}' . base64_encode(sha1($password, TRUE))

等你搞定了数据库之后,一切都可以工作了。

没有评论: