Невозможно загрузить функции LDAP в PHP

При попытке использовать 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). Итак, выполните установку следующим образом:

  1. yum install php53
  2. yum install php53-ldap

На этом этапе вам должно быть хорошо идти. Вам не нужно иметь какую-либо специальную библиотеку Apache LDAP вообще, чтобы заставить PHP работать с LDAP.

Если вы используете RH 6, вы можете пропустить 53 часть имени.

Это в основном догадка, но вы пробовали перейти на PHP 5.3.9?

В Интернете есть небольшое количество шумовых сообщений о нарушении LDAP на 5.3.10. Кроме того, вы можете попробовать PHP 5.4, если почувствуете смелость.