web-dev-qa-db-ja.com

PHP LDAPヘッダーライブラリが見つからないように設定する

LDAP開発ヘッダーをインストールしました。

apt-get install libldb-dev

これにより、いくつかのLDAPヘッダーが追加されました。

root@crunchbang:/usr/include# ls -la ldap*
-rw-r--r-- 1 root root  9466 Apr 23  2013 ldap_cdefs.h
-rw-r--r-- 1 root root  1814 Apr 23  2013 ldap_features.h
-rw-r--r-- 1 root root 65213 Apr 23  2013 ldap.h
-rw-r--r-- 1 root root  9450 Apr 23  2013 ldap_schema.h
-rw-r--r-- 1 root root  3468 Apr 23  2013 ldap_utf8.h

ディレクトリを構成して参照すると:

./configure --with-ldap=/usr/include

私はこのエラーを受け取ります:

...
checking for LDAP support... yes
checking for LDAP Cyrus SASL support... no
checking size of long int... 4
configure: error: Cannot find ldap libraries in /usr/include.
9
Shawn Welch

私はDockerコンテナに関連するPHP拡張機能を取得しようとしてこの問題に遭遇しました。これが私がしなければならなかったことです:

  1. apt-get install libldb-dev libldap2-dev
  2. ln -s /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/libldap.so \ && ln -s /usr/lib/x86_64-linux-gnu/liblber.so /usr/lib/liblber.so
25
sorrell

これは完璧に機能しました。

LDAPライブラリーをインストールします。

apt-get install libldb-dev

SOリンカーファイルを作成します。

updatedb --prunepaths=/mnt
cd /usr/lib

if [ ! -L liblber-2.4.so.2 ];
then
    ln -s "$(locate liblber-2.4.so.2)"
fi

if [ ! -L liblber-2.4.so.2.8.3 ];
then
    ln -s "$(locate liblber-2.4.so.2.8.3)"
fi

if [ ! -L liblber.so ];
then
    ln -s "$(locate liblber.so)"
fi

if [ ! -L libldap.so ];
then
    ln -s "$(locate libldap.so)"
fi

if [ ! -L libldap_r.so ];
then
    ln -s "$(locate libldap_r.so)"
fi

PHPを構成します。

./configure --with-ldap=/usr

8
Shawn Welch

公式のPHP Dockerイメージの問題で、 this comment によると、それを行うための最もクリーンな方法は、 libldap2-dev(Debian/Ubuntuの場合)およびconfigure--with-libdir=lib/x86_64-linux-gnuで呼び出します。

3
scy

私はこれと同じ問題を抱えており、上記の答えのいずれも役に立ちませんでした。次に、PHPの構成ファイルを少し掘り下げた後、別の解決策を見つけました。

1)使用しているlib directoriyを確認します。スイッチ--with-libdir=lib64を使用する場合、libldap.soとその他の.soファイルが/usr/lib64にあるはずです。 libdirを指定しない場合、.soファイルは/usr/libにある必要があります。 .soファイルが非標準ディレクトリ(/usr/lib64など)にあるが、libdirを指定したくない場合は、シンボリックリンクを作成できます。

2)スイッチを使用する--with-ldap=yes

なぜこれが構成ヘルプに記載されていないのでしょうか。

1
eciii

PHPバージョン5.6.20 debianおよびベース:su aptitude install libldb-dev ln -s /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/libldap.so次に、コンパイルしてみます

1
ZiTAL

(あなたがUbuntuを使っていると仮定して)configure --with-ldap-libs=/usr/lib/i386-linux-gnu/。問題が解決しない場合は、使用しているLinuxディストリビューションと構築しているプロジェクトの詳細を追加して、回答を拡張してください。

0
yrk