当您遇到此错误时
警告:ldap_start_tls() [function.ldap-start-tls]:无法启动 TLS:/var/www/X.php 第 Y 行出现连接错误
这可能是由于证书有效性问题造成的。您可以通过添加调试级别来检查错误
<?php
ldap_set_option(NULL, LDAP_OPT_DEBUG_LEVEL, 7);
?>
这可以在 ldap_connect 执行之前完成。
要解决证书有效性问题
添加
TLS_REQCERT never
在文件中(如果不存在则创建)
c:\openldap\sysconf\ldap.conf <= Windows
/etc/ldap.conf <= linux
可能需要重启 Web 服务器才能应用更改
这可能不是最好的解决方案,但它确实有效...
还有一点要注意的是,它需要版本 3(版本 2 是 PHP 默认版本)
<?php
$con = ldap_connect($hostnameSSL);
ldap_set_option($con, LDAP_OPT_PROTOCOL_VERSION, 3);
?>
另一个提示:如果您使用的是类似“ldap://...”(自动使用端口 389)或“ldaps://...”(自动使用端口 636)的 URL,则不会使用 ldap_connect 的第二个参数。