問題: httpd、apr、および apr-util の最新のソースを使用し、LDAP サポートを有効にして、Apache Web サーバーをコンパイルしようとしています。私の現在の手順では、mod_ldap.so と mod_authnz_ldap.so をコンパイルしていないようです。
環境背景:ビルドと対象OSはRHEL5です。httpd の非 LDAP 対応インスタンスが既にサーバー (2.4.1) にあり、SVN 1.7.3 が既にインストールされており、httpd-2.4.1 で匿名で動作します。
再現手順:ここのコンパイル手順に従って、ダウンロードしました:
- /path/apache/src/httpd-2.4.4 の httpd-2.4.4
- /path/apache/src/apr-1.4.6 の apr 1.4.6
- apr-utils 1.5.2 /path/apache/src/apr-utils-1.5.2
- /path/openldap-2.4.35_src および /path/db-5.3.21_src の OpenLDAP および Berkley DB (apr-util を構築するための LDAP ライブラリ用)
ソースを用意して、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
その後、 と でビルドしてインストールしまし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
/path/apache/httpd-2.4.4/ に httpd インスタンスがあります。/path/httpd-2.4.1/httpd.conf をモデルとして使用して、既存の構成とロードしたモジュールを照合し、以下を追加しました。
LoadModule mod_ldap modules/mod_ldap.so
LoadModule mod_authnz_ldap modules/mod_authnz_ldap.so
ただし、apachectl start を実行すると、構文エラーが発生します。
/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/modules は問題を軽減しません。
私の手順のエラーを診断するのを手伝ってくれる人はいますか? 何かが足りないことはわかっていますが、これまでのところ見つけることができませんでした。必要に応じて、その他の必要な情報も追加します。