2012-04-09 43 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部分。