我正在使用WAMP并尝试运行以下内容:
<?php
$ldap = ldap_connect("ldap.example.com");
$user = "exampleUser";
$pass = "examplePass";
if($bind = ldap_bind($ldap, $user, $pass)) {
// logged in
} else {
// error message
}
?>
在执行此操作之前,我尝试运行phpinfo()以查看是否已安装ldap,并且它不会出现在任何地方。
我尝试了以下内容:
我真的不知道我在做什么,但这些是我在网上找到的建议。任何帮助将不胜感激!
答案 0 :(得分:6)
这个答案可能对其他遇到此问题的人有用,因为自OP发布此问题以来已有一年多了。
我正在运行
我尝试了大多数建议的解决方案,谷歌搜索将带您到达,似乎没有任何工作。一个论坛建议查看PHP pages
上述链接中名为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"
这对我有用,而且当我使用phpinfo()
时,LDAP现在出现了,虽然除了运行ldap_connect()
函数之外我还没有正确测试它,但我假设这意味着它正在工作,我应该能够在我的应用程序中使用它。
除了将libsasl.dll
添加到Apache bin之外,我还将C:\wamp\bin\apache\Apache2.4.4\bin
和C:\wamp\bin\php\php5.4.16
添加到我的PATH
(即Windows环境变量 - &gt;系统变量 - &gt;路径)我在Apache和php bin中添加了ssleay32.dll
和libeay32.dll
,不确定是否需要,但它现在正在运行。
答案 1 :(得分: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()并查找extensions目录。导航到该目录并确保其中存在php_ldap.dll。
答案 2 :(得分:0)
我通过在以下Windows系统路径中添加php
文件夹解决了同样的问题:
在命令提示符下
SET PATH=C:\wamp\bin\php\php5.3.13;%PATH%
答案 3 :(得分:0)
我只是将'libsasl.dll'从php目录复制到apache目录,显然重启了httpd。这解决了我的问题。
这不是WAMP安装,我分别安装了apache和php。也许在WAMP或LAMP的情况下,可能需要更多文件。
答案 4 :(得分:0)
现在已经太晚了,但我遇到了问题,我想补充一点,你必须取消注释 php和apache&#39;中的extension = php_ldap.dll 的php.ini 强>