При попытке использовать ldap_connect()
я получаю эту ошибку:
Неустранимая ошибка: вызов неопределенной функции ldap_connect ()
Я перекомпилировал php с включенным модулем apache LDAP, и я также отредактировал файл php.ini и раскомментировал:
extension=php_ldap.dll
Я на Red Hat Linux, php 5.3.10, apache 2.2. Есть идеи?
Загруженные модули Apache: (содержит * util_ldap *)
Ядро mod_authn_file mod_authn_default mod_authz_host mod_authz_groupfile mod_authz_user mod_authz_default mod_auth_basic mod_include mod_filter util_ldap mod_log_config mod_logio mod_env mod_expires mod_headers mod_setenvif mod_version mod_proxy mod_proxy_connect mod_proxy_ftp mod_proxy_http mod_proxy_scgi mod_proxy_ajp mod_proxy_balancer mod_ssl PreFork http_core mod_mime mod_status mod_autoindex mod_asis mod_info mod_suexec mod_cgi mod_negotiation mod_dir mod_actions mod_userdir mod_alias mod_rewrite mod_so mod_auth_passthrough mod_bwlimited mod_fpcgid mod_php5 mod_security
Протоколы Apache: (содержит: ldap )
dtt, file, ftp, ftps, gopher, http, https, imap, imaps, ldap, ldaps, pop3, pop3s, rtsp, smtp, smtps, telnet, tftp
Ты пишешь:
При попытке использовать ldap_connect () я получаю эту ошибку:
Неустранимая ошибка: вызов неопределенной функции ldap_connect ()
Вы получаете эту ошибку, потому что функция ldap_connect
Docs не определена. Вы не можете вызвать неопределенную функцию в PHP, поэтому вы видите фатальную ошибку.
Чтобы определить эту функцию, вам нужно загрузить модуль / расширение PHP под названием LDAP
. Он поставляется с инсталляциями . Вы написали:
Я перекомпилировал php с включенным модулем apache LDAP.
Если вы перекомпилируете PHP, убедитесь, что вы включили LDAP, см.
Вам нужно будет использовать параметр конфигурации
--with-ldap[=DIR]
при компиляции PHP для поддержки LDAP. DIR – это базовая папка установки LDAP.
Однако, как правило, достаточно просто установить, что вам нужно, с помощью диспетчера пакетов, например, попробуйте:
# yum install php-ldap
Если этого недостаточно, и вам действительно нужно отредактировать вашу конфигурацию PHP (не всегда необходимо), сделайте это:
$ vi /etc/php.ini add extension=ldap.so # service httpd restart
Надеюсь, это полезно. Позаботьтесь, что .dll
– только окна.
Я настоятельно рекомендую вам использовать PHP, который вы можете установить с помощью yum. В зависимости от вашей версии RH вам может потребоваться указать, что вы хотите php53 (для RH <6). Итак, выполните установку следующим образом:
На этом этапе вам должно быть хорошо идти. Вам не нужно иметь какую-либо специальную библиотеку Apache LDAP вообще, чтобы заставить PHP работать с LDAP.
Если вы используете RH 6, вы можете пропустить 53 часть имени.
Это в основном догадка, но вы пробовали перейти на PHP 5.3.9?
В Интернете есть небольшое количество шумовых сообщений о нарушении LDAP на 5.3.10. Кроме того, вы можете попробовать PHP 5.4, если почувствуете смелость.