2012-04-09 58 views
2

加載在嘗試使用ldap_connect(),我得到這個錯誤:無法獲得LDAP功能在PHP

Fatal error: Call to undefined function ldap_connect()

我重新編譯並啓用了LDAP Apache模塊PHP和我已經編輯我的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

阿帕奇協議:(包含:LDAP

快譯通,文件,FTP,FTPS,地鼠,HTTP,HTTPS,IMAP,IMAPS,LDAP,LDAPS,POP3,POP3S,RTSP,SMTP,SMTPS, telnet,tftp

+0

您是否在編輯後重新啓動Apache? – jprofitt 2012-04-09 18:59:00

+5

這些是Apache內的模塊,不在PHP內。 – 2012-04-09 20:41:42

+1

通過'phpinfo()'檢查加載的擴展來縮小問題的範圍。如果沒有顯示,請確保顯示啓動錯誤以識別ldap擴展文件的錯誤路徑或拼寫錯誤。 – Lars 2012-04-09 21:26:35

回答

9

你寫:

When attempting to use ldap_connect(), I get this error:

Fatal error: Call to undefined function ldap_connect()

因爲功能ldap_connect­Docs沒有定義你得到這個錯誤。您不能在PHP中調用未定義的函數,這就是您看到致命錯誤的原因。

要定義該功能,您需要加載a PHP module/extension called LDAP。它配有installation intructions。您寫道:

I've recompiled php with the LDAP apache module enabled.

如果重新編譯PHP,確保您啓用LDAP,請參閱:

You will need to use the --with-ldap[=DIR] configuration option when compiling PHP to enable LDAP support. DIR is the LDAP base install directory.

然而,通常這是不夠的,只是你安裝通過包管理器,例如需要什麼嘗試:

# yum install php-ldap 

如果這還不夠,你實際上需要編輯PHP配置(並不總是必要的),做到這一點:

$ vi /etc/php.ini 

add extension=ldap.so 

# service httpd restart 

我希望這是有幫助的。請注意,.dll僅適用於Windows。

1

這主要是一個預感,但你試過降級到PHP 5.3.9嗎?

關於LDAP在5.3.10上被破壞,互聯網上有少量的嗡嗡聲。另外,如果你覺得大膽,可以試試PHP 5.4。

1

我強烈建議您使用可以使用yum安裝的PHP。根據您的RH版本,您可能需要指定您需要php53(適用於RH < 6)。所以,不要安裝這樣的:

  1. 百勝安裝php53
  2. 百勝安裝php53-LDAP

在這一點上,你要善於去。您不需要安裝任何特殊的Apache LDAP庫就可以讓PHP使用LDAP。

如果您使用的是RH 6,那麼您可以跳過名稱的53部分。