在PHP 5.5.x中配置LDAP证书目录(Windows)

时间:2013-08-24 01:34:31

标签: php ldap certificate openldap hardcoded

直到5.4版本,当PHP从其源代码编译时,LDAP扩展程序被硬编码以在 c:\ openldap \ sysconf 文件夹中查找其证书。从5.5开始,这个' harcode'被称为%SYSCONFDIR%的环境变量替换。但是,无论我做什么,我都无法将LDAP扩展指向它之前的相同目录! :(

在PHP 5.4中,ldap_config.h

#define LDAP_SYSCONFDIR "c:\\openldap\\sysconf"

在PHP 5.5中,ldap_config.h

#define LDAP_SYSCONFDIR "%SYSCONFDIR%"

抱歉我的英语不好。 任何线索?感谢。

3 个答案:

答案 0 :(得分:1)

我使用Sysinternals Process Explorer运行了跟踪,它显示php_ldap was尝试打开文件C:\Apache24\%SYSCONFDIR%\ldap.conf,其中%SYSCONFDIR%按字面解释而不是从环境变量的内容扩展。 我在C:\Apache24中安装了Apache,但显然确切路径将根据Apache文件夹的名称而有所不同。 在Apache安装的根文件夹中,创建一个名为%SYSCONFDIR%的文件夹(字面意思!)并将ldap.conf放在那里。这解决了我。

答案 1 :(得分:1)

下载最新版本的PHP 5.5。

这已在windows.php.net的PHP 5.5.4二进制文件中得到解决。 LDAP扩展在5.4中查找“ c:\ openldap \ sysconf \ ldap.conf ”。

答案 2 :(得分:0)

似乎它将由php团队在下一个版本中修复。 见https://bugs.php.net/bug.php?id=65642

相关问题