PHP構成がLDAPヘッダーライブラリを見つけられない[終了]


9

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.

1
サーバー障害のトピック外のPHPのコンパイルに関する質問はどうですか?5人のモデレーターは、PHPがユビキタスな「ビジネス環境で使用される情報技術システム」であり、IT専門家が一般的にそれを管理する責務を負っていることに本当に気づいていますか?彼らは、サーバーソフトウェアのコンパイルが簡単なシステム管理タスクであることを理解していませんか?この質問を閉じる正当な理由はなく、「オフトピック」であることは、まったくばかげたことです。
Goladus

@Goladusありがとうございます!はい。これがサーバーに関連していないかわかりません。
Shawn Welch、

回答:


25

私はこの問題に遭遇し、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

Dockerfile ....... apt-get updateを実行&& apt-get install -y \ libldap2-dev \ libldb-dev \ && 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
リッチK.

8

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

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


答えてくれてありがとう。Ubuntuのトラスティため、libldb-DEVをインストールした後、以下で十分です:sudo ln -s /usr/lib/i386-linux-gnu/liblber.so /usr/libsudo ln -s /usr/lib/i386-linux-gnu/libldap.so /usr/lib
タワー2016年

また、lib64ライブラリパスを指定していないことを確認してください。これは、コンパイルが失敗したことを確認する確実な方法です。これは実際の修正です!--with-libdir = lib64 \ //これが私が言及しているものです
prog_24

3

これを行うための最もクリーンな方法は、公式のPHP Dockerイメージの問題に関するこのコメントによると、libldap2-dev(Debian / Ubuntuで)を使用してで呼び出すconfigureこと--with-libdir=lib/x86_64-linux-gnuです。


1

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

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

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

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

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


私にとって--with-ldap = yesが見つかりました。
IagoLeão18年

0

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


それを試してみました。動作しません。configure: error: Cannot find ldap libraries in /usr/lib.
Shawn Welch

回答を更新しました。ついていってください。
yrk 2014年

--with-ldap-libsはオプションではないと思います。--with-ldap-dirを試してみましたが、機能しているように見えましたが、php ldap関数を使用しようとしても機能しませんでした。
Shawn Welch
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.