我试图使用PHP LDAP模块在我的某些组织内容上放置身份验证层。如果我将LDAP_OPT_X_TLS_REQUIRE_CERT设置为0,该脚本将完美运行,但如果我不这样做,则会出现以下错误。
This page表明可以通过将LDAP服务器的安全证书放在我自己的服务器上来解决对等证书错误。我向IT部门请求了PEM。现在我需要确定放在哪里。
当我尝试通过为LDAP_OPT_X_TLS_CACERTDIR打印ldap_get_option()来获取预期的证书目录时,我收到警告" ldap_get_option()期望参数2为整数,字符串给出"。实际上,当我回显LDAP_OPT_X_TLS_CACERTDIR本身时,结果就是字符串,而不是整数。
例如:
echo LDAP_OPT_SIZELIMIT . '<br />';
echo LDAP_OPT_ERROR_STRING . '<br />';
echo LDAP_OPT_X_TLS_CACERTDIR;
die();
结果:
3
50
LDAP_OPT_X_TLS_CACERTDIR
这是每个LDAP_OPT_X_的问题吗? the documentation中列出的选项,但LDAP_OPT_X_TLS_REQUIRE_CERT除外,其打印为24582.
有谁知道为什么没有定义这些选项?
答案 0 :(得分:2)
Ldap-Option LDAP_OPT_X_TLS_CACERTDIR在PHP 7.1中引入了PHPs LDAP-Extension(https://github.com/php/php-src/commit/8e9e89610e2e196892dbb7b605c65923a3fedf87)。因此,当您使用PHP 7.0时,没有机会在不自行破解PHP源的情况下启动并运行。最简单的选择是更新到PHP 7.1