PHP 配置未找到 LDAP 标头库

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.

答案1

我在尝试将 PHP 扩展纳入 Docker 容器时遇到了这个问题。以下是我必须做的事情:

  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

答案2

这对我来说非常有效。

安装 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

答案3

最干净的方式是,此评论在官方 PHP Docker 镜像的问题中,正在使用libldap2-dev(在 Debian/Ubuntu 中)并configure使用进行调用--with-libdir=lib/x86_64-linux-gnu

答案4

我遇到了同样的问题,上面的答案都无济于事。然后,在深入研究了 PHP 的配置文件后,我找到了另一种解决方案。

1) 检查您正在使用哪个 lib 目录。如果您使用开关,--with-libdir=lib64则应该将libldap.so和其他.so文件放在 中/usr/lib64。如果您未指定 libdir,则.so文件应该位于 中。如果文件位于非标准目录(如)中,但您不想指定 libdir,则/usr/lib可以创建符号链接。.so/usr/lib64

2)使用开关--with-ldap=yes

我想知道为什么配置帮助中没有记录这一点。

相关内容