无法在PHP中加载LDAP函数

时间:2012-04-09 18:56:03

标签: php apache redhat openldap

尝试使用ldap_connect()时,我收到此错误:

  

致命错误:调用未定义的函数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的

Apache协议:(包含: ldap

dict,file,ftp,ftps,gopher,http,https,imap,imaps,ldap,ldaps,pop3,pop3s,rtsp,smtp,smtps,telnet,tftp

4 个答案:

答案 0 :(得分:10)

你写道:

  

尝试使用ldap_connect()时,出现此错误:

     

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

您收到此错误,因为未定义函数ldap_connect­Docs。你不能在PHP中调用未定义的函数,这就是你看到致命错误的原因。

要定义该功能,您需要加载a PHP module/extension called LDAP。它附带installation intructions。你写道:

  

我已经重新编译了启用了LDAP apache模块的php。

如果您重新编译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。

答案 1 :(得分:1)

这主要是预感,但您是否尝试过降级到PHP 5.3.9?

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

答案 2 :(得分:1)

我强烈建议您使用可以使用yum安装的PHP。根据您的RH版本,您可能必须指定您想要php53(对于RH< 6)。所以,安装如下:

  1. yum install php53
  2. yum install php53-ldap
  3. 此时,你应该好好去。您根本不需要安装任何特殊的Apache LDAP库来使PHP与LDAP一起使用。

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

答案 3 :(得分:0)

对于CentOs。我已经安装了Php 7。 所以当我试图执行

yum install php-ldap
  

出现此错误

php71w-common conflicts with php-common-5.4.16-43.el7_4.1.x86_64

要解决此错误并安装ldap-php,请执行

yum install php71w-ldap

服务器将尝试安装5.6但我们需要引导服务器安装7。

如果它不起作用,请尝试在另一个答案中提到的php.ini中添加扩展名。

  

不要忘记重启服务器。

安装完成后,ldap-login将成功完成。