我已经浏览了很多关于此的问题并且已经用尽了我的选择,所以就这样了。我有一个Windows 2008R2域控制器。我使用PHP通过LDAP从不同的服务器,同一个域连接到它。 (还有Win2008R2,IIS7.5)我确保了以下几点:
这是我的代码:
putenv('LDAPTLS_REQCERT=never');
$host = "ldaps://mydc.thing.com:636";
$dn = "Admin User";
$dnp = "adminPaSwOrD";
$base = "DC=thing,DC=com";
$scope = "sub";
ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($ds, LDAP_OPT_REFERRALS, 0);
$ds = ldap_connect($host);
$r=ldap_bind($ds, $dn, $dnp);
错误消息始终为:
PHP Warning: ldap_sasl_bind() [<a href='function.ldap-sasl-bind'>function.ldap-sasl-bind</a>]: Unable to bind to server: Can't contact LDAP server in ...
相关的PHP信息:
#Version 5.3.8
#cURL: 7.22.0, SSL:yes, dict, file, ftp, ftps, gopher, http, https, imap, imaps, ldap, pop3, pop3s, rtsp, scp, sftp, smtp, smtps, telnet, tftp
#LDAP: enabled, SASL: enabled, OpenLdap v.20319
我已经洗过Goggle并且自己尝试了很多东西。奇怪的是,PHP机器上的LDAP客户端可以连接并绑定到DC,而不是PHP。我也尝试过CLI中的PHP(将IIS从混合中删除)并返回相同的错误。
非常感谢任何帮助。
SG
答案 0 :(得分:0)
我将PHP升级到5.6,问题就消失了。我不知道为什么。回答我自己的问题&#34;我缺少什么使这项工作?&#34; - 我猜错了正确的PHP版本。