使用WAMP和LDAP时出错

时间:2012-06-07 15:42:00

标签: php ldap

我正在使用WAMP并尝试运行以下内容:

<?php

$ldap = ldap_connect("ldap.example.com");

$user = "exampleUser";
$pass = "examplePass";

if($bind = ldap_bind($ldap, $user, $pass)) {
  // logged in
} else {
  // error message
}

?>

在执行此操作之前,我尝试运行phpinfo()以查看是否已安装ldap,并且它不会出现在任何地方。

我尝试了以下内容:

  1. 取消注释php.ini中的以下行:extension = php_ldap.dll
  2. 将这些文件复制到与php.ini:ssleay32.dll相同的目录中 和libeay32.dll
  3. 在我的环境变量中添加了以下内容:C:\ wamp \ bin \ php
  4. 执行上述任何操作后重新启动。
  5. 我真的不知道我在做什么,但这些是我在网上找到的建议。任何帮助将不胜感激!

5 个答案:

答案 0 :(得分:6)

这个答案可能对其他遇到此问题的人有用,因为自OP发布此问题以来已有一年多了。

我正在运行

  • WAMP版本:2.4
  • Apache版本:2.4.4
  • PHP版本:5.4.16

我尝试了大多数建议的解决方案,谷歌搜索将带您到达,似乎没有任何工作。一个论坛建议查看PHP pages

上述链接中名为Frank的用户建议将libsasl.dll复制到[apache folder]\bin,尽管只推荐用于早期版本的php,此文件位于php文件夹中。

copy "C:\wamp\bin\php\php5.4.16\libsasl.dll" "C:\wamp\bin\apache\apache2.4.4\bin\libsasl.dll"

这对我有用,而且当我使用phpinfo()时,LDAP现在出现了,虽然除了运行ldap_connect()函数之外我还没有正确测试它,但我假设这意味着它正在工作,我应该能够在我的应用程序中使用它。

除了将libsasl.dll添加到Apache bin之外,我还将C:\wamp\bin\apache\Apache2.4.4\binC:\wamp\bin\php\php5.4.16添加到我的PATH(即Windows环境变量 - &gt;系统变量 - &gt;路径)我在Apache和php bin中添加了ssleay32.dlllibeay32.dll,不确定是否需要,但它现在正在运行。

答案 1 :(得分:0)

你得到了什么错误?功能不存在?

此外,您应该在ldap_connect函数之后添加以下行:

ldap_set_option($ldap, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($ldap, LDAP_OPT_REFERRALS, 0);
ldap_set_option($ldap, LDAP_OPT_DEBUG_LEVEL, 7);

if(!$ldap){
    echo "LDAP Failed To Connect: ".ldap_error($ldap);
}

选项将ldap设置为协议版本3,这对于活动目录和服务器2k3等都是必需的,并且在ldap连接上启用了调试。

<强>更新

此外,运行phpinfo()并查找extensions目录。导航到该目录并确保其中存在php_ldap.dll。

答案 2 :(得分:0)

我通过在以下Windows系统路径中添加php文件夹解决了同样的问题:

在命令提示符下

SET PATH=C:\wamp\bin\php\php5.3.13;%PATH%

答案 3 :(得分:0)

我只是将'libsasl.dll'从php目录复制到apache目录,显然重启了httpd。这解决了我的问题。

这不是WAMP安装,我分别安装了apache和php。也许在WAMP或LAMP的情况下,可能需要更多文件。

答案 4 :(得分:0)

现在已经太晚了,但我遇到了问题,我想补充一点,你必须取消注释 php和apache&#39;中的extension = php_ldap.dll 的php.ini