Monday, August 2

mac os下安装redmine+mercurial+apache+ldap

如果只是简单地希望安装redmine+apache的话,那么就去下载bitnami::redmine,安装使用是非常的轻松。
如果认证方式想使用ldap,那就需要周折一番了。mac自带的apache就没有支持ldap认证,bitnami也没有。我们只能自己重新编译apache一条路可以走。按照找的这个参考指南
1,首先下载指定版本的mac版的apache代码,我将其放在了/Downloads/下

2,在console下做编译之前的准备工作
./configure --prefix=/Downloads/httpd-2.2.11/usr/local/apache2 --enable-mods-shared=all --enable-ldap --enable-authnz-ldap --enable-ssl --with-included-apr --with-ldap --enable-proxy


3,开始编译
make; make test; make install


4,拷贝得到的apache2版本到bitnami的redmine,取代原来的apache2,记得暂时不要删除原来的版本,因为需要拷贝几个配置文件过来,主要是conf下的httpd.conf和ssl.conf。
然后在使用./ctlscript.sh restart apache的时候,看看是否成功。主要是httpd.conf里面有的module找不到的话,那就注释上。

5,配置httpd.conf到支持ldap
首先增加如下两行到LoadModule的区域,
LoadModule ldap_module modules/mod_ldap.so
LoadModule authnz_ldap_module modules/mod_authnz_ldap.so


然后设置目录认证方式,类似


ScriptAliasMatch ^/hg/test(.*) /repository/mercurial/test/hgweb.cgi/$1
ScriptAliasMatch ^/hg/project1(.*) /repository/mercurial/project1/hgweb.cgi/$1

<LocationMatch ^/hg(.*)>
AuthType Basic
AuthName "Welcome to HG Server"
AuthBasicProvider ldap
AuthzLDAPAuthoritative on
#AuthLDAPBindDN uid=testaccount1,cn=users,dc=myserver,dc=sample,dc=com
#AuthLDAPBindPassword [plaintext password for user 'testaccount1']
AuthLDAPURL ldap://127.0.0.1/dc=myserver,dc=sample,dc=com
require valid-user

Order allow,deny
Allow from all
Options ExecCGI

</LocationMatch>

上面的操作使得mercurial代码库出于LDAP认证的保护之下。在redmine里面也可以简单地设置LDAP认证,方便的很

No comments: