4

I'm using WAMP and trying to run something like the following:

<?php

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

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

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

?>

Before doing this though, I tried running phpinfo() to see if ldap was installed, and it doesn't appear anywhere.

I've tried the following:

  1. Uncommented the following line in php.ini: extension=php_ldap.dll
  2. Copied these files into the same directory as php.ini: ssleay32.dll and libeay32.dll
  3. Added the following to my environment variables: C:\wamp\bin\php
  4. Restarted after doing any of these.

I don't really know what I'm doing, but these were the suggestions I found online. Any help would be appreciated!

4

5 回答 5

6

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

我在跑

  • WAMP 版本:2.4
  • 阿帕奇版本:2.4.4
  • PHP版本:5.4.16

我尝试了大多数建议的解决方案,谷歌搜索会带给你,但似乎没有任何效果。推荐查看PHP 页面的论坛

上面链接中名为 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"

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

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

于 2014-01-23T11:43:49.853 回答
0

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

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

于 2014-07-10T03:58:19.300 回答
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() 并查找扩展目录。导航到该目录并确保 php_ldap.dll 存在于其中。

于 2012-06-07T15:58:58.830 回答
0

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

在命令提示符下

SET PATH=C:\wamp\bin\php\php5.3.13;%PATH%
于 2014-01-13T12:52:38.180 回答
0

为时已晚,但我遇到了问题,我想补充一点,您必须 在php 和 apache 的 php.ini中取消注释 extension=php_ldap.dll

于 2018-02-07T16:45:33.767 回答