Конфигурация 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.
8
задан 3 October 2014 в 20:46
6 ответов

Я столкнулся с этой проблемой, пытаясь включить расширения 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
23
ответ дан 2 December 2019 в 22:40

Это отлично сработало.

Установка LDAP-библиотек:

apt-get install libldb-dev

Create SO linker files:

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

Configure PHP:

./configure --with-ldap=/usr

8
ответ дан 2 December 2019 в 22:40

(Если вы находитесь в Ubuntu) Пожалуйста, попробуйте настроить --with-ldap-libs=/usr/lib/i386-linux-gnu/. Если это не помогло, пожалуйста, укажите в ответе, какой дистрибутив Linux вы используете и какой проект вы собираете.

.
0
ответ дан 2 December 2019 в 22:40

PHP версия 5.6.20 debian и основанный: su aptitude установите libldb-dev ln -s /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/libldap.so тогда попробуй скомпилировать его

.
1
ответ дан 2 December 2019 в 22:40

У меня была такая же проблема, и ни один из приведенных выше ответов не помог. Затем, покопавшись в конфигурационном файле PHP, я нашел другое решение.

1) Проверьте, какой каталог lib вы используете. Если вы используете переключатель - with-libdir = lib64 , тогда у вас должен быть libldap.so и другие файлы .so в / usr / lib64 . Если вы не указываете каталог libdir, тогда файлы .so должны находиться в / usr / lib . Вы можете создавать символические ссылки, если файл .so находится в нестандартном каталоге (например, / usr / lib64 ), но вы не хотите указывать libdir.

2) Используйте переключатель - with-ldap = yes

Интересно, почему это не задокументировано в справке по настройке.

1
ответ дан 2 December 2019 в 22:40

Самый чистый способ сделать это, согласно этот комментарий в выпусках официального образа PHP Docker, заключается в использовании libldap2-dev (в Debian / Ubuntu) и вызов configure с помощью - with-libdir = lib / x86_64-linux-gnu .

3
ответ дан 2 December 2019 в 22:40

Теги

Похожие вопросы