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?至少有五位主持人真正地意识到PHP是一种无处不在的“用于业务环境的信息技术系统”,并且IT专业人员通常承担着管理它的任务吗?他们是否没有意识到编译服务器软件是繁琐的系统管理任务?没有正当的理由来结束这个问题,而且“离题”简直是荒谬的。
Goladus '19

@Goladus谢谢!是。不知道这与服务器无关。
肖恩·韦尔奇

Answers:


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
RichK。

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
Wtower

另外,请确保未指定lib64库路径,因为这是确保编译失败的肯定方式。这是实际的解决方法!--with-libdir = lib64 \ //这是我所指的
prog_24,2016年

3

最干净的方式做到这一点,根据这个意见在PHP码头工人的官方图片的问题,是使用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)检查您使用的库目录。如果使用开关,--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.
肖恩·韦尔奇

更新了答案。请跟进。
2014年

我不认为--with-ldap-libs是一个选择。我试过--with-ldap-dir,它似乎可以工作,但是当我尝试使用php ldap函数时,它不起作用。
肖恩·韦尔奇
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.