2011-02-23 90 views
6

我想在我的WAMP服务器上写一些LDAP验证码。在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'; 
?> 

我得到这个错误:

Fatal error: Call to undefined function ldap_connect() in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\oplweb\index.php on line 10

从一些基本的谷歌搜索,它看起来像我需要打开mod_ldap模块。看起来很简单。我已经做了以下内容:

  • 又到C:\ Program Files文件\ Apache的 软件基金会\ APACHE2.2 \模块 并确信mod_ldap.so 存在。
  • 我已经去到C:\ PROGRAM 文件\ 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()函数是否有其他的依赖关系?我错过了一步吗?

干杯

+0

您的extension_dir是否在您的php.ini中正确设置? – glomad 2011-02-23 16:08:33

+1

另外,与你的问题无关,你在一个地方使用$ ldapconfig [],在另一个地方使用$ ldap []。 – glomad 2011-02-23 16:09:21

+0

谢谢,解决了var名称的问题。 – 2011-02-23 16:11:55

回答

2

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

支持|启用

您可以让PHP设置为在扩展目录自动启用任何东西,否则你可能会被取消注释一行看起来手动启动它像:

延长= php_ldap.dll

在你的php.ini文件

记得在启用它后重新启动apache。

+0

phpinfo中没有LDAP部分。它显示在apache2handler下,在加载的模块部分。 – 2011-02-24 13:22:10

+0

另外,我已经在php.ini文件夹中为extension = php_ldap.dll启用了它。 – 2011-03-02 16:04:26

+0

如果您在phpinfo输出中没有看到它,那么很可能不会启用它。我认为这是你真正的问题。 – dobrien 2011-03-02 16:18:04

1

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

+0

这似乎需要LDAP。这是一个例子,页面返回一个错误,指出在PHP中不支持LDAP。 – 2011-02-24 13:35:03

+0

对不起,我的错误,我没有注意到我一直在使用的盒子上安装了LDAP扩展。 – Capsule 2011-02-24 13:40:04

4

我遇到了同样的问题与我的Windows Server 2008的 - 你添加的php.ini文件到你的Windows路径?


进入控制面板,打开系统图标(开始 - >设置 - >控制面板 - >系统,或只是开始 - >控制面板 - >系统为Windows XP/2003 +)

进入高级选项卡

单击“环境变量”按钮

看在“系统变量”栏中

找到Path这一项(可能需要发克罗尔找到它)

在Path项

双击末,包括输入你的PHP目录“;”前(比如:C:\ PHP)

按OK

+0

这并且在正确的PHP.ini文件中启用LDAP是最终允许我为此工作的。 – 2012-08-23 19:42:07

+0

PATH中的PHP和启用LDAP也适用于我。 – foxybagga 2013-02-25 19:40:47

1

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

1

对于WAMP,php.ini的工作版本位于apache \ bin。 我之前经历过同样的问题,直到我更改了Apache \ bin中的php.ini设置,并最终发挥作用。

+1

只需运行phpinfo(),它会告诉你你的php.ini所在的位置 – rkosegi 2012-02-28 07:58:19