我正在尝试在我的WAMP服务器上编写一些LDAP身份验证代码。
我正在使用它:
<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);
$ldapconfig['host'] = 'my.server.province.country';
$ldapconfig['port'] = 389;
$ldapconfig['basedn'] = 'DC=x,DC=y,DC=z,DC=x1';
$ldapconfig['authrealm'] = 'My Realm';
ldap_connect($ldapconfig['host'], $ldapconfig['port']) or die ('Could not connect');
echo 'connected';
?>
我收到了这个错误:
致命错误:调用未定义 函数ldap_connect()在C:\ Program中 Files \ Apache软件 基金会\ APACHE2.2 \ htdocs中\ oplweb \的index.php 在第10行
从一些基本的谷歌搜索,看起来我需要打开mod_ldap。看似简单。我做了以下事情:
问题仍然存在。 php中的ldap_connect()函数是否还有其他依赖项?我错过了一步吗?
干杯
答案 0 :(得分:4)
我在Windows Server 2008中遇到了同样的问题 - 您是否已将php.ini文件添加到Windows路径中?
转到“控制面板”并打开“系统”图标(“开始” - >“设置” - >“控制面板” - >“系统”,或者“开始” - >“控制面板” - >“Windows XP / 2003 +系统”)
转到“高级”标签
单击“环境变量”按钮
查看“系统变量”窗格
找到路径条目(您可能需要滚动才能找到它)
双击路径条目
最后输入您的PHP目录,包括';'之前(例如; C:\ php)
按OK
答案 1 :(得分:2)
检查您的phpinfo以确保启用了ldap。您应该看到LDAP部分和
支持|启用
您可能已将php设置为自动启用扩展程序目录中的任何内容,或者您可能必须通过取消注释如下所示的行来手动启用它:
延长= php_ldap.dll
在你的php.ini文件中
请记住在启用后重启apache。
答案 2 :(得分:1)
如果您要连接到Active Directory,则可以使用此类,该类不需要任何特殊的PHP扩展:http://sourceforge.net/projects/adldap/
答案 3 :(得分:1)
我最近遇到了同样的问题,我在磁盘上搜索了php.ini
,发现那里有两个php.ini
文件 - 一个位于 php 目录下另一个在apache\bin
目录下。我取消注释了两个文件中的extension=php_ldap.dll
行,问题就解决了。
答案 4 :(得分:1)
对于WAMP,php.ini的工作版本位于apache \ bin。 我之前遇到过相同的问题,直到我更改了apache \ bin中的php.ini设置,最后才有效。