问题:我正在尝试使用最新的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并用make
和make 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
这是成功的,我是能够运行make
和make 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 /模块不能缓解这个问题。
有人能帮助我诊断我的步骤中的错误吗?我知道我错过了一些东西,但迄今为止我一直无法找到它。如果需要,我还会添加其他所需的信息。