web-dev-qa-db-fra.com

=PHP Configurer ne trouve pas les bibliothèques d'en-tête LDAP

J'ai installé les en-têtes de développement LDAP:

apt-get install libldb-dev

Cela a ajouté quelques en-têtes 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

Lorsque je configure et référende le répertoire:

./configure --with-ldap=/usr/include

Je reçois cette erreur:

...
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.
9
Shawn Welch

J'ai couru dans cette question en essayant d'obtenir PHP Extensions impliquées dans un conteneur Docker. Voici ce que je devais faire:

  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
25
sorrell

Cela a parfaitement travaillé pour moi.

Installez les bibliothèques LDAP:

apt-get install libldb-dev

Créer SO Fichiers de liaison:

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

Configurer PHP:

./configure --with-ldap=/usr

8
Shawn Welch

Le moyen le plus propre de le faire, selon -- ce commentaire dans les problèmes de l'officiel PHP Docker Image, utilise libldap2-dev (dans Debian/Ubuntu) et appeler configure avec --with-libdir=lib/x86_64-linux-gnu.

3
scy

J'ai eu ce même problème et aucune des réponses ci-dessus a aidé. Ensuite, après avoir creusé un digage dans le fichier de configuration de PHP, j'ai trouvé une solution différente.

1) Vérifiez que vous utilisez la réalisatrice LIB. Si vous utilisez le commutateur --with-libdir=lib64 alors vous devriez avoir le libldap.so et l'autre .so Fichiers dans /usr/lib64. Si vous ne spécifiez pas de libdir, alors le .so Les fichiers doivent être dans /usr/lib. Vous pouvez créer des liens symboliques si le .so Le fichier est dans un répertoire non standard (comme /usr/lib64) Mais vous ne voulez pas spécifier la libdir.

2) Utilisez le commutateur --with-ldap=yes

Je me demande pourquoi cela n'est pas documenté dans l'aide de configuration.

1
eciii

PHP version 5.6.20 Debian et basé: su aptitude install libldb-dev ln -s /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/libldap.so Alors, essayez de le compiler

1
ZiTAL

(En supposant que vous êtes sur Ubuntu), veuillez essayer configure --with-ldap-libs=/usr/lib/i386-linux-gnu/. Si cela ne vous aide pas, veuillez étendre votre réponse avec des détails sur lesquels vous utilisez Linux Distro et quel projet vous construisez.

0
yrk