无法使用PHP加载LDAP函数

当试图使用ldap_connect() ,我得到这个错误:

致命错误:调用未定义的函数ldap_connect()

我已经重新编译php的LDAP apache模块启用,我也编辑了我的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_headers中指定mod_expires 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

字典,文件,FTP,FTP,GOPE,HTTP,HTTPS,IMAP,IMAPI,IADAP,LDPAP,POP3,POP3S,rtsp,SMTP,SMTP,TELNET,TFTP

你写:

当试图使用ldap_connect(),我得到这个错误:

致命错误:调用未定义的函数ldap_connect()

你得到这个错误是因为函数ldap_connect Docs没有被定义。 你不能在PHP中调用一个未定义的函数,这就是为什么你看到致命的错误。

要定义这个函数,你需要加载一个名为LDAP的PHP模块/扩展 。 它带有安装入口 。 你写了:

我已经重新编译PHP的LDAP阿帕奇模块启用。

如果您重新编译PHP,请确保启用LDAP,请参阅:

在编译PHP以启用LDAP支持时,您将需要使用--with-ldap[=DIR]配置选项。 DIR是LDAP基本安装目录。

但是,通常只需通过软件包管理器就可以安装所需的软件,例如:

 # yum install php-ldap 

如果这还不够,而且实际上您需要编辑您的PHP配置(并不总是必需),那么请执行以下操作:

 $ vi /etc/php.ini add extension=ldap.so # service httpd restart 

我希望这是有帮助的。 请注意.dll只是Windows。

我强烈建议你使用可以使用yum安装的PHP。 根据您的RH版本,您可能需要指定您需要php53(RH <6)。 所以,请这样安装:

  1. yum安装php53
  2. yum安装php53-ldap

在这一点上,你应该很好走。 您不需要安装任何特殊的Apache LDAP库来使PHP能够使用LDAP。

如果您使用RH 6,则可以跳过名称的53部分。

这主要是一个预感,但你试过降级到PHP 5.3.9?

在互联网上有一些关于5.3.10上的LDAP被破坏的嗡嗡声。 另外,如果你觉得胆大,可以试试PHP 5.4。