【发布时间】:2012-02-08 05:29:01
【问题描述】:
在启用 LDAP 的情况下,我已经使用 WAMP 安装了很长一段时间,并且一切进展顺利。现在虽然我必须设置另一台机器,但由于某种原因我无法启用 LDAP。
我检查了phpinfo() 的输出,但LDAP 部分不存在。我编辑了php.ini 以取消注释该行:
extension = php_ldap.dll
我还检查了正在搜索扩展名的文件路径,文件 php_ldap.dll 位于正确的位置。
我肯定我正在编辑正确的php.ini 文件,因为我检查了phpinfo() 显示的文件路径,而且我能够成功启用/禁用其他扩展。
每次更改后我都重新启动了 Apache。
在谷歌搜索时,我发现的唯一解决方案是上面的那些,加上一两次提到编辑 Windows PATH 变量以包含php.ini 的路径?即使它对我没有意义,也尝试过(因为我已经知道 php.ini 正在被解析)。我还检查了我之前在另一台机器上的安装,从我所见,我从未在该机器上的PATH 中添加任何 PHP 目录
编辑完整答案
Frank 下面的回答让我找到了解决方案,所以我想我现在应该整合所有内容。
在 WAMP 服务器上启用 LDAP 支持:
- 在
php.ini中取消注释extension = php_ldap.dll -
重要提示:通过检查
phpinfo()的输出,确保您正在编辑正确的php.ini - 检查
php.ini文件以获取扩展目录的位置 - 检查
php_ldap.dll是否位于该目录中 - (我错过的步骤) 找到文件
libeay32.dll和ssleay32.dll并将它们的目录添加到 Windows PATH - 重新启动 Apache。如果启用了 LDAP,在
phpinfo()的输出中会有一个关于它的部分
【问题讨论】:
-
这里有一些提示:php.net/manual/en/ldap.installation.php。请注意,您需要添加另外两个 DLL
libeay32.dll and ssleay32.dll。您可能还需要使用--with-ldap进行编译 -
嗯...我现在无法访问机器,但我感觉这就是我需要的。我上面提到我将 php.ini 目录添加到 PATH,也许我误读了将扩展目录添加到 PATH 的内容。我可能在上次设置时将这两个 .dll 文件直接复制到 system32 中,所以当我检查该机器的 PATH 时我不会发现任何线索
-
@FrankFarmer 现在开始工作了!这两个文件位于
php.ini所在的同一目录中,但显然没有找到。我将该目录添加到 Windows PATH 并启用了 LDAP!在那之后,我再次检查了第一台机器(正在工作的机器),它们位于 PHP 的默认扩展文件夹中。因此,也许只需要将它们复制到那里,而不是使用 PATH 变量。我当时没想过要检查,但明天早上我会移动这些文件并重新启动。然后我会再次在这里发帖,只是为了涵盖所有内容。 -
@FrankFarmer 您的评论直接导致了解决方案,所以如果您想发布答案,我会接受它
-
当我看到
php.ini文件时,这个(extension = php_ldap.dll)不存在,我只是添加了这一行并启用了 ldap。