【问题标题】:LDAP Auth on WAMP [closed]WAMP上的LDAP身份验证[关闭]
【发布时间】:2011-02-23 16:05:18
【问题描述】:

我正在尝试在我的 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';
?>

我收到此错误:

致命错误:调用未定义 C:\Program 中的函数 ldap_connect() 文件\Apache 软件 Foundation\Apache2.2\htdocs\oplweb\index.php 在第 10 行

通过一些基本的谷歌搜索,看起来我需要打开 mod_ldap。看起来很简单。我做了以下事情:

  • 转到 C:\Program Files\Apache 软件基础\Apache2.2\modules 并确保 mod_ldap.so 存在。
  • 我已进入 C:\Program 文件\Apache 软件 Foundation\Apache2.2\conf\httpd.conf 并确保这条线不是 注释掉:LoadModule ldap_module 模块/mod_ldap.so
  • 我已经进入 C:\Program Files\PHP\php.ini 并制作 确保没有注释掉这一行: 扩展=php_ldap.dll
  • 重启apache

问题仍然存在。 php 中的 ldap_connect() 函数是否还有其他依赖项?我错过了一步吗?

干杯

【问题讨论】:

  • 你的 extension_dir 是否在你的 php.ini 中正确设置?
  • 另外,与您的问题无关,您在一个地方使用 $ldapconfig[] 而在另一个地方使用 $ldap[]。
  • 谢谢,解决了 var 名称的问题。
  • extension_dir ="C:\Program Files\PHP\ext" - 该目录没有可能是问题的 php_ldap.dll。
  • 下载了,加进去了,还是一样的错误。

标签: php windows apache ldap wamp


【解决方案1】:

我的 Windows Server 2008 也遇到了同样的问题 - 您是否已将 php.ini 文件添加到您的 Windows 路径中?


转到控制面板并打开系统图标(开始 -> 设置 -> 控制面板 -> 系统,或者只是开始 -> 控制面板 -> Windows XP/2003+ 的系统)

转到高级选项卡

点击“环境变量”按钮

查看“系统变量”窗格

查找路径条目(您可能需要滚动才能找到它)

双击路径条目

最后输入你的PHP目录,包括';'之前(例如 ;C:\php)

按确定

【讨论】:

  • 这并在适当的 PHP.ini 文件中启用 LDAP 是最终允许我完成这项工作的原因。
  • PATH 中的 PHP 和启用 LDAP 也对我有用。
【解决方案2】:

检查您的 phpinfo 以确保 ldap 已启用。您应该会看到一个 LDAP 部分,并且

支持 |启用

您可能将 php 设置为自动启用扩展目录中的任何内容,或者您​​可能必须通过取消注释如下所示的行来手动启用它:

extension=php_ldap.dll

在您的 php.ini 文件中

启用后记得重启apache。

【讨论】:

  • phpinfo 中没有 LDAP 部分。它确实显示在加载模块部分的 apache2handler 下。
  • 另外,我在 php.ini 文件夹中使用 extension=php_ldap.dll 启用了它。
  • 如果您在 phpinfo 输出中没有看到它,那么它很可能没有启用。我认为这是你真正的问题。
  • 我同意。但是我已经展示了我为启用它所采取的步骤,似乎没有人能够发现我的做法存在问题。
【解决方案3】:

如果您要连接到 Active Directory,则可以使用不需要任何特殊 PHP 扩展的此类:http://sourceforge.net/projects/adldap/

【讨论】:

  • 这似乎需要 LDAP。它的示例页面返回一个错误,指出 PHP 中不支持 LDAP。
  • 对不起,我的错,我没有注意到我一直在使用的盒子上安装了 LDAP 扩展。
【解决方案4】:

对于 WAMP,php.ini 的工作版本位于 apache\bin。 我之前遇到过同样的问题,直到我在 apache\bin 中更改了 php.ini 设置,最后它工作了。

【讨论】:

  • 只要运行 phpinfo(),它会告诉你 php.ini 的位置
【解决方案5】:

我最近遇到了同样的问题,我在磁盘上搜索php.ini,发现那里有两个php.ini文件——一个在php目录下,另一个在php目录下。 apache\bin 目录。我在两个文件中都取消了extension=php_ldap.dll 行的注释,问题就解决了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-03
    • 2011-09-23
    • 2017-01-09
    • 2015-05-06
    相关资源
    最近更新 更多