問題:我正在嘗試使用最新的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 /模塊不能緩解這個問題。
有人能幫助我診斷我的步驟中的錯誤嗎?我知道我錯過了一些東西,但迄今爲止我一直無法找到它。如果需要,我還會添加其他所需的信息。