【问题标题】:Unable to enable PHP LDAP even though I have edited php.ini and php_ldap.dll is in the right place?即使我编辑了 php.ini 并且 php_ldap.dll 在正确的位置,也无法启用 PHP LDAP?
【发布时间】: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 支持:

  1. php.ini 中取消注释extension = php_ldap.dll
  2. 重要提示:通过检查phpinfo() 的输出,确保您正在编辑正确的php.ini
  3. 检查 php.ini 文件以获取扩展目录的位置
  4. 检查php_ldap.dll 是否位于该目录中
  5. (我错过的步骤) 找到文件 libeay32.dllssleay32.dll 并将它们的目录添加到 Windows PATH
  6. 重新启动 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。

标签: php apache ldap wamp


【解决方案1】:

这里有一些提示:http://php.net/manual/en/ldap.installation.php。请注意,您需要添加另外两个 DLL libeay32.dllssleay32.dll。您可能还需要使用--with-ldap进行编译

【讨论】:

    【解决方案2】:

    我按照这些说明操作,但仍然无法在我的 phpinfo() 中加载 LDAP。 Apache 日志在启动时显示以下非致命消息:######/php5.4.16/ext/php_ldap.dll - The specified module could not be found. in Unknown on line 0

    最后,我再次查看了 phpinfo(),发现使用的是系统变量 PATH 而不是我的用户变量 PATH,并且它不包含 PHP 根目录和 PHP 扩展文件夹的正确路径。只需将它们添加到####\php\php5.4.16;####\php\php5.4.16\ext; 并重新启动 Apache,即可解决问题。希望这可以帮助其他人。

    【讨论】:

      【解决方案3】:
      1. 检查您的 PHP 文件夹中的 libsasl.dll libeay32.dllssleay32.dll
      2. 如果没有libeay32.dllssleay32.dll,请从https://code.google.com/archive/p/openssl-for-windows/downloads下载
      3. 将它们复制到 Windows 中的 System32 文件夹
      4. 现在您可以在 phpinfo() 上看到 LDAP 部分。它对我有用。

      我的环境
      视窗 10
      PHP 7.4.3
      阿帕奇 2.4.41

      【讨论】:

        【解决方案4】:

        我正在使用 phpstorm。如果找不到评论,只需在 php.ini 页面底部粘贴“extension = php_ldap.dll”。不客气

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-04-01
          • 1970-01-01
          • 2011-11-05
          • 1970-01-01
          • 2021-06-22
          • 2021-08-09
          • 2019-12-20
          • 2017-10-08
          相关资源
          最近更新 更多