Я установил заголовки разработки 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.
Я столкнулся с этой проблемой, пытаясь задействовать расширения 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
У меня это сработало отлично.
Установите библиотеки 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
Самый чистый способ сделать это, по мнению этот комментарий в выпусках официального образа PHP Docker использует libldap2-dev
(в Debian / Ubuntu) и вызов configure
с участием --with-libdir=lib/x86_64-linux-gnu
.
Версия PHP 5.6.20 на debian и на основе:
su
aptitude install libldb-dev
ln -s /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/libldap.so
затем попробуйте скомпилировать его
У меня была такая же проблема, и ни один из приведенных выше ответов не помог. Затем, покопавшись в конфигурационном файле PHP, я нашел другое решение.
1) Проверьте, какой каталог lib вы используете. Если вы используете переключатель --with-libdir=lib64
тогда у вас должен быть libldap.so
и другие .so
файлы в /usr/lib64
. Если вы не указываете libdir, тогда .so
файлы должны быть в /usr/lib
. Вы можете создавать символические ссылки, если .so
файл находится в нестандартном каталоге (например, /usr/lib64
), но вы не хотите указывать libdir.
2) Используйте переключатель --with-ldap=yes
Интересно, почему это не описано в справке по настройке.
(Предполагая, что вы используете Ubuntu) Попробуйте configure --with-ldap-libs=/usr/lib/i386-linux-gnu/
. Если не помогло, дополните свой ответ подробностями о том, какой дистрибутив Linux вы используете и какой проект вы создаете.