Dalam aplikasi PHP, sangat biasa menggunakan LDAP (Lightweight Directory Access Protocol). Walau bagaimanapun, kadangkala anda mungkin menerima mesej ralat berikut:
PHP Fatal error: Call to undefined function ldap_connect()
Mesej ralat ini menunjukkan bahawa versi PHP anda tidak memuatkan atau mendayakan LDAP Extension . Ini dengan mudah boleh menyebabkan pengguna tidak dapat menyambung ke pelayan LDAP dan melakukan operasi yang sepadan.
Dalam artikel ini, kita akan membincangkan cara menyelesaikan mesej ralat ini.
Mula-mula, pastikan sambungan LDAP telah didayakan dalam persekitaran PHP anda. Anda boleh menyemak dengan:
Buka terminal dan jalankan arahan berikut:
php -m | grep ldap
Jika anda melihat kata kunci "ldap" Output menunjukkan bahawa sambungan LDAP telah didayakan. Jika tidak, anda perlu mendayakannya, kaedah yang tepat akan berbeza-beza bergantung pada sistem dan versi PHP yang anda gunakan.
Jika sambungan LDAP tidak didayakan dalam persekitaran PHP anda, anda boleh mendayakannya dengan mengedit php.ini fail. Dalam sistem Linux, php.ini biasanya terletak dalam direktori /etc/, manakala dalam sistem Windows, ia terletak dalam direktori akar PHP.
Buka fail php.ini dan cari baris berikut:
;extension=php_ldap.dll
Alih keluar koma bernoktah di hadapan dan tukar sambungan kepada sistem anda berada menggunakan sambungan yang sepadan:
extension=php_ldap.so (Linux)
extension=php_ldap.dll (Windows)
Simpan dan tutup fail, kemudian mulakan semula pelayan Web anda.
Jika anda telah mendayakan sambungan LDAP dan ia masih tidak berfungsi, cuba mulakan semula pelayan web anda.
Dalam sistem Linux, anda boleh menggunakan arahan berikut untuk memulakan semula Apache:
sudo service apache2 restart
Dalam sistem Windows, anda boleh menggunakan arahan berikut untuk memulakan semula IIS:
iisreset
Jika sambungan LDAP didayakan dan anda telah memulakan semula pelayan web tetapi masih tidak dapat menyambung ke Pelayan LDAP, ini mungkin kerana perkhidmatan LDAP tidak tersedia.
Anda boleh mencuba arahan berikut untuk menyemak sama ada perkhidmatan LDAP tersedia:
telnet your-ldap-server-hostname 389
Jika output adalah serupa dengan yang berikut , ini bermakna Perkhidmatan LDAP tersedia:
Mencuba 10.0.2.15...
Disambungkan ke nama hos-ldap-server anda.
Awak Escape ialah '^]'.
Akhir sekali, anda perlu memastikan kod PHP anda betul. Semak bahawa tempat dalam kod PHP di mana fungsi ldap_connect() dipanggil adalah betul dan pastikan semua parameter adalah betul. Sebelum memanggil fungsi tersebut, anda perlu memastikan sambungan LDAP dimuatkan dan perkhidmatan LDAP tersedia.
Ringkasan
Jika anda menemui mesej ralat "Panggil ke fungsi undefined ldap_connect()", sila ikut langkah di atas untuk menyemak satu demi satu. Mula-mula semak sama ada sambungan LDAP telah didayakan, dan kemudian sahkan sama ada fail php.ini telah dikonfigurasikan dengan betul. Kedua, anda perlu memulakan semula pelayan web dan menyemak sama ada perkhidmatan LDAP tersedia. Akhir sekali, pastikan kod PHP anda betul. Jika anda telah mengikuti langkah di atas untuk membetulkannya, tetapi masalah masih wujud, anda boleh mempertimbangkan untuk menggunakan sambungan lain yang serupa atau menggunakan pustaka antara muka LDAP.
Atas ialah kandungan terperinci Penyelesaian kepada ralat Fatal PHP: Panggilan ke fungsi undefined ldap_connect(). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!