Php WAMP上的LDAP身份验证
我正在尝试在我的WAMP服务器上编写一些LDAP身份验证代码 我用这个:Php WAMP上的LDAP身份验证,php,windows,apache,ldap,wamp,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
<?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';
?>
我得到了这个错误:
致命错误:调用undefined
C:\Program中的函数ldap\u connect()
文件\Apache软件
基金会\Apache2.2\htdocs\oplweb\index.php
第10行
从一些基本的谷歌搜索中,看起来我需要打开mod_ldap。看起来很简单。我已经做了以下工作:
- 转到C:\Program Files\Apache 软件基础\Apache2.2\模块 并确保mod_ldap.so 存在
- 我进入了C:\程序 文件\Apache软件 基金会\Apache2.2\conf\httpd.conf 并确保这条线不是 注释掉:LoadModule ldap_模块 模块/mod_ldap.so
- 我进入了一个新的世界 C:\Program Files\PHP\PHP.ini和made 确保此行未被注释掉: extension=php_ldap.dll
- 重新启动apache
干杯检查您的phpinfo以确保已启用ldap。您应该看到LDAP部分,以及 支持|启用 您可以将php设置为自动启用扩展目录中的任何内容,也可以通过取消注释一行来手动启用它,如下所示: extension=php_ldap.dll 在php.ini文件中
请记住在启用apache后重新启动它。如果您连接到Active Directory,您可以使用不需要任何特殊PHP扩展名的此类:我的Windows Server 2008遇到了同样的问题-您是否已将PHP.ini文件添加到Windows路径
转到控制面板并打开系统图标(开始->设置->控制面板->系统,或仅开始->控制面板->Windows XP/2003+系统) 转到“高级”选项卡 单击“环境变量”按钮 查看“系统变量”窗格 查找路径条目(可能需要滚动才能找到) 双击路径条目 在末尾输入PHP目录,包括“;”之前(例如:C:\php)
按OK我最近遇到了同样的问题,我在磁盘上搜索了
php.ini
,发现有两个php.ini
文件,一个在php目录下,另一个在apache\bin
目录下。我取消了这两个文件中的扩展名=php_ldap.dll
行的注释,问题就解决了。对于WAMP,php.ini的工作版本位于apache\bin。
我以前也遇到过同样的问题,直到我在apache\bin中更改了php.ini设置,最后它才起作用。您的扩展名\u dir在php.ini中设置正确吗?另外,与您的问题无关,您在一个位置使用$ldapconfig[],在另一个位置使用$ldap[]。谢谢,用var names.extension\u dir=“C:\Program Files\php\ext”修复了这个问题-该目录没有可能是问题所在的php_ldap.dll。已下载并添加了该目录,但仍然存在相同的错误。phpinfo中没有ldap部分。它确实显示在apache2handler下的loaded modules部分。此外,我在php.ini文件夹中使用extension=php_ldap.dll启用了它。如果在phpinfo输出中没有看到它,则很可能没有启用它。我认为这是你真正的问题,我同意。但我已经展示了启用它所采取的步骤,似乎没有人能够发现我如何操作的问题。这似乎需要LDAP。它的示例页面返回一个错误,指出PHP中不支持LDAP。很抱歉,我的错,我没有注意到LDAP扩展已安装在我使用的框上。只需运行phpinfo(),它将通知您php.ini的位置。这一点以及在适当的php.ini文件中启用LDAP是最终允许在路径中为me.php工作的原因,而启用LDAP也为我工作。