2011-04-20 65 views
20

我试图通过PHP连接到我的LDAP服务器调用未定义功能ldap_connect(),但我得到了以下错误:致命错误:在Ubuntu

Fatal error: Call to undefined function ldap_connect()

任何帮助将是非常赞赏。

由于提前, 罗山

+0

Im试图连接到开放ds – 2011-04-20 05:16:55

+2

无论你试图连接的地方 - 你没有安装php ldap扩展。 – zerkms 2011-04-20 05:18:02

+2

我遇到了同样的问题,但使用Solaris。我想我已经使用PHP启用了LDAP。请参阅http://pastie.org/1982091以获取phpinfo()的输出并搜索LDAP或“ldap”。你应该看到'--with-ldap = shared,/ opt/csw'等等。所以我不知道我还错过了什么。 – 2011-05-27 19:18:32

回答

38

确保已安装并启用LDAP extension。这个答案假设你有PHP5,但是,对于PHP7来说,事情也应该类似。

安装LDAP扩展

应该有一个名为像PHP5,LDAP包:

aptitude show php5-ldap 
Paquet : php5-ldap 
... 
Description : LDAP module for php5                                                   
This package provides a module for LDAP functions in PHP scripts. 

由此,封装通常可以安装,如:

sudo apt-get install php5-ldap 

如果您不使用apt-get,请使用该包的等效命令您使用的年龄管理器。

启用LDAP扩展

为了使安装包后,您可以使用此命令:

sudo php5enmod ldap 

如果从上面的命令得到任何错误信息,则意味着出现了错误。

注意:启用软件包后,通常必须重新启动/重新加载服务,以便识别新启用的模块。对于Apache,你可以这样做:

sudo service apache2 restart 

如果你不使用apache,请使用您的服务器的等效命令。

+0

我想我们应该在安装后重新启动服务器。 – 2012-07-09 07:41:49

+5

安装此软件包后,您需要重新启动apache服务。 'sudo service apache2 restart'应该可以在Ubuntu中做到这一点。 – 2013-08-05 16:33:43

+0

确保在安装ldap之后,在lib lib文件夹中有一个ldap.so,并且还将一个ldap.ini添加到php config或ldap扩展中,有时安装将不会添加,请重新运行安装或手动添加 – Basav 2013-11-28 07:02:46

4
sudo apt-get install php5-ldap 

也不要害怕谷歌。