2013-05-13 161 views
2

问题:我正在尝试使用最新的httpd,apr和apr-util源以及启用LDAP支持来编译Apache Web服务器。我目前的步骤似乎没有编译mod_ldap.so和mod_authnz_ldap.so。mod_ldap和mod_authnz_ldap不适用于Apache httpd 2.4.4和SVN

环境背景:构建和目标操作系统是RHEL5。的httpd的非LDAP启用的实例已经在服务器(2.4.1)和1.7.3 SVN上已安装并使用的httpd-2.4.1

步骤匿名作品重现: 继汇编指令here我已经下载:

  • 的httpd-2.4.4 /path/apache/src/httpd-2.4.4
  • 四月1.4.6在/path/apache/src/apr-1.4.6
  • apr-utils 1.5.2 /path/apache/src/apr-util-1.5.2
  • OpenLDAP和伯克利DB(用于LDAP库来构建APR-util的反对)在/path/openldap-2.4.35_src和/path/db-5.3.21_src

随着地方来源,我: 编译BDB并将其安装到/path/db-5.3.21 使用已安装的BDB编译OpenLDAP并将其安装在/path/openldap-2.4.35中 配置了apr,编译并将其安装在/ path/apache/apr中 配置APR-util的带:

./configure --with-ldap --prefix=/path/apache/apr-util-1.5.2 --with-apr=/path/apache/apr-1.4.6 --with-ldap-lib=/path/openldap-2.4.35/lib --with-ldap-include=/path/openldap-2.4.35/include

之后,I b并用makemake install安装。

最后,我配置了以下的httpd:

./configure --prefix=/path/apache/httpd-2.4.4 --with-apr=/path/apache/apr-1.4.6 --with-apr-util=/path/apache/apr-util-1.5.2 --with-pcre=/path/apache/pcre-8.30 --with-ldap --enable-ldap 

这是成功的,我是能够运行makemake install

我现在有一个httpd的实例中/路/阿帕奇/ httpd的-2.4.4 /。使用/path/httpd-2.4.1/httpd.conf作为一种模式,我匹配现有的配置和加载的模块,并补充说:

LoadModule mod_ldap modules/mod_ldap.so LoadModule mod_authnz_ldap modules/mod_authnz_ldap.so

但是,如果我跑的apachectl开始我得到一个语法错误:

/path/apache/httpd-2.4.4> ./bin/apachectl start httpd: Syntax error on line 148 of /path/apache/httpd-2.4.4/conf/httpd.conf: Can't locate API module structure 'mod_ldap' in file /path/apache/httpd-2.4.4/modules/mod_ldap.so: /path/apache/httpd-2.4.4/modules/mod_ldap.so: undefined symbol: mod_ldap

在httpd-2.4.4/modules目录中找,模块mod_ldap.so和mod_authnz.ldap.so失踪。我已经尝试了上述步骤,但没有成功。我发现在src/httpd-2.4.4目录中存在./modules/aaa/.libs/mod_authnz_ldap.so和./modules/ldap/.libs/mod_ldap.so文件,但将其复制到httpd -2.4.4 /模块不能缓解这个问题。

有人能帮助我诊断我的步骤中的错误吗?我知道我错过了一些东西,但迄今为止我一直无法找到它。如果需要,我还会添加其他所需的信息。

回答

1

如上配置,通过共享模块支持LDAP。要启用定义的模块(包括我的情况下的LDAP),您需要使用--enable-so标志来配置Apache。这将生成共享模块并在编译/安装时将它们放置在模块目录中。

可以在此SO文章中找到其他参考:Compiling Apache Web Server with Dynamic Module Support