我安装了 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 容器时遇到了这个问题。以下是我必须做的事情:
apt-get install libldb-dev libldap2-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
答案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
我想知道为什么配置帮助中没有记录这一点。