即使我已编辑php.ini并且php_ldap.dll位于正确位置,仍无法启用PHP LDAP?

时间:2012-01-11 20:48:30

标签: php apache ldap wamp

我已经使用WAMP安装了很长一段时间,现在启用了LDAP,一切都很顺利。现在虽然我必须设置另一台机器,但由于某种原因我无法启用LDAP。

我检查了phpinfo()的输出,但LDAP部分不存在。我修改了php.ini以取消对该行的注释:

extension = php_ldap.dll

我还检查了要搜索扩展名的文件路径,文件php_ldap.dll位于正确的位置。

肯定我正在编辑正确的php.ini文件,因为我检查了phpinfo()显示的文件路径,而且我能够成功启用/禁用其他扩展。

每次更改后我都重新启动了Apache。

在谷歌搜索时,我发现的唯一解决方案是上面那些,加上一两个提及编辑Windows PATH变量以包含php.ini的路径?尝试它虽然它对我没有意义(因为我已经知道php.ini正被解析)。我还检查了我在其他机器上的上一次安装,从我看到的内容我从未在该机器的PATH上添加任何PHP目录

完整答案编辑

弗兰克在下面的回答让我得到了解决方案,所以我想我现在要巩固一切。

在WAMP服务器上启用LDAP支持:

  1. extension = php_ldap.dll
  2. 中取消注释php.ini
  3. 重要:通过检查php.ini
  4. 的输出,确保您正在修改权限phpinfo()
  5. php.ini文件中查看您的扩展程序目录的位置
  6. 检查php_ldap.dll是否位于该目录中
  7. 我失败的步骤)查找文件libeay32.dllssleay32.dll并将其目录添加到Windows PATH
  8. 重启Apache。如果启用了LDAP,则会在phpinfo()
  9. 的输出中显示有关它的部分

4 个答案:

答案 0 :(得分:10)

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

进行编译

答案 1 :(得分:4)

我按照这些说明操作但仍然无法在我的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的root和PHP&的正确路径#39;的扩展名文件夹。只需在####\php\php5.4.16;####\php\php5.4.16\ext;中添加它们并重新启动Apache即可解决问题。希望这可以帮助其他人。

答案 2 :(得分:0)

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

我的环境
Windows 10
PHP 7.4.3
Apache 2.4.41

答案 3 :(得分:-1)

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