我已经使用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支持:
- 在
php.ini
中取消注释extension = php_ldap.dll
- 重要信息:通过检查
phpinfo()
的输出,确保您正在编辑正确的php.ini
- 检查
php.ini
文件中扩展目录的位置 - 检查
php_ldap.dll
是否位于该目录中 - (我错过的步骤)找到文件
libeay32.dll
和ssleay32.dll
,并将其目录添加到Windows路径 - 重新启动Apache。如果启用了LDAP,则
phpinfo()
的输出中将有一个关于它的部分
这里有一些提示:http://php.net/manual/en/ldap.installation.php。请注意,您需要添加另外两个DLL libeay32.dll
和ssleay32.dll
。您可能还需要使用--with-ldap
编译
我遵循了这些说明,但仍然无法在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,就解决了问题。希望这能帮助其他人。
- 查看PHP文件夹中的libsasl.dlllibreay32.dll、ssleay32.dll
- 如果不存在libeay32.dll、ssleay32.dll,请从下载https://code.google.com/archive/p/openssl-for-windows/downloads
- 将它们复制到Windows中的System32文件夹
- 现在您可以看到关于phpinfo()的LDAP部分。它对我有效
我的环境
Windows 10
PHP 7.4.3
Apache 2.4.41
im使用phpstorm。如果找不到注释,只需在php.ini页面底部粘贴"extension=phpldap.dll"即可。欢迎