WAMP上的LDAP身份验证

时间:2011-02-23 16:05:18

标签: php windows apache ldap wamp

我正在尝试在我的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。看似简单。我做了以下事情:

  • 去了C:\ Program Files \ Apache Software Foundation \ Apache2.2 \ modules 并确保mod_ldap.so 存在。
  • 我进入了C:\ Program Files \ Apache软件 基金会\ APACHE2.2 \的conf \ httpd.conf文件 并确保这条线不是 注释掉:LoadModule ldap_module 模块/ mod_ldap.so
  • 我进去了 C:\ Program Files \ PHP \ php.ini并制作 确定这一行没有被注释掉: 延长= php_ldap.dll
  • 重启apache

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

干杯

5 个答案:

答案 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设置,最后才有效。

相关问题