Konfigurasi PHP tidak menemukan perpustakaan header LDAP [ditutup]


9

Saya menginstal tajuk pengembangan LDAP:

apt-get install libldb-dev

Ini menambahkan beberapa header 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

Ketika saya mengkonfigurasi dan referensi direktori:

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

Saya mendapatkan kesalahan ini:

...
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
Bagaimana pertanyaan tentang mengkompilasi PHP di luar topik untuk kesalahan server? Apakah tidak kurang dari LIMA moderator yang benar-benar tidak menyadari bahwa PHP adalah "sistem teknologi informasi yang digunakan di mana-mana" di mana-mana dan bahwa para profesional TI biasanya ditugaskan untuk mengelolanya? Apakah mereka tidak menyadari bahwa menyusun perangkat lunak server adalah tugas Administrasi Sistem roti dan mentega? Tidak ada alasan yang sah untuk menutup pertanyaan ini dan itu menjadi "di luar topik" hanyalah absurd.
Goladus

@Goladus Terima kasih! Iya. Tidak yakin bagaimana ini BUKAN server terkait.
Shawn Welch

Jawaban:


25

Saya mengalami masalah ini mencoba untuk melibatkan ekstensi PHP dalam wadah Docker. Inilah yang harus saya lakukan:

  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 ....... JALANKAN pembaruan apt-get && 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
Rich K.

8

Ini bekerja dengan baik untuk saya.

Instal pustaka LDAP:

apt-get install libldb-dev

Buat file tautan 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

Konfigurasikan PHP:

./configure --with-ldap=/usr


Terima kasih atas jawabannya. Untuk Ubuntu Trusty, setelah menginstal libldb-dev, berikut ini sudah cukup: sudo ln -s /usr/lib/i386-linux-gnu/liblber.so /usr/lib, sudo ln -s /usr/lib/i386-linux-gnu/libldap.so /usr/lib.
Wtower

Juga, pastikan Anda tidak menentukan lib64 librari path karena itu adalah cara yang pasti untuk memastikan kompilasi gagal. Ini adalah perbaikan yang sebenarnya! --with-libdir = lib64 \ // Inilah yang saya maksudkan
prog_24

3

Cara terbersih untuk melakukannya, menurut komentar ini dalam masalah gambar resmi PHP Docker, adalah menggunakan libldap2-dev(di Debian / Ubuntu) dan menelepon configuredengan --with-libdir=lib/x86_64-linux-gnu.


1

PHP Versi 5.6.20 debian dan berbasis: su aptitude install libldb-dev ln -s /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/libldap.so lalu, coba kompilasi


1

Saya memiliki masalah yang sama dan tidak ada jawaban di atas yang membantu. Kemudian setelah beberapa penggalian ke dalam file konfigurasi PHP saya menemukan solusi yang berbeda.

1) Periksa lib directoriy yang Anda gunakan. Jika Anda menggunakan switch --with-libdir=lib64maka Anda harus memiliki libldap.sodan .sofile lainnya /usr/lib64. Jika Anda tidak menentukan libdir maka .sofile - file tersebut harus dalam /usr/lib. Anda dapat membuat symlink jika .sofile berada di direktori non-standar (seperti /usr/lib64) tetapi Anda tidak ingin menentukan libdir.

2) Gunakan sakelar --with-ldap=yes

Saya ingin tahu mengapa ini tidak didokumentasikan dalam bantuan konfigurasi.


Bagi saya --dengan-ldap = ya ditemukan.
Iago Leão

0

(Dengan asumsi Anda menggunakan Ubuntu) Silakan coba configure --with-ldap-libs=/usr/lib/i386-linux-gnu/. Jika tidak membantu, sampaikan jawaban Anda dengan perincian tentang distro Linux mana yang Anda gunakan dan proyek mana yang Anda buat.


Sudah mencobanya. Tidak bekerja configure: error: Cannot find ldap libraries in /usr/lib.
Shawn Welch

Diperbarui jawabannya. Mohon ikuti.
tahun

Saya tidak berpikir --dengan-ldap-libs adalah pilihan. Saya sudah mencoba --with-ldap-dir dan sepertinya berhasil tetapi ketika saya mencoba menggunakan fungsi ldap php tidak berfungsi.
Shawn Welch
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.