ldap_bind(): Unable to bind to server: Can't contact LDAP server
ldap_bind(): Unable to bind to server: Can't contact LDAP server
方法一:
这是最基本的方法,先确认PHP脚本实际上可以链接LDAP服务器。
以下是需要注意的一些事情:
是否有防火墙阻止您访问AD / LDAP服务器?
LDAP服务器是否正在运行?
它是否在Active Directory服务器上启用?
您在ldap_bind中使用的密码是否正确?
您是否在为用户使用RDN而不仅仅是用户名?
例如,在Windows上,这看起来像:"uid=USERNAME,cn=users,dc=HOSTNAME,dc=DOMAIN,dc=com"
这是最基本的方法,但我经常会遇到类似的事情,所以我想我一定要想到。
方法二:
此解决方案仅适用于连接到安全LDAP服务器的情况。
很多人遇到这个问题。以下有关Novell网站的文章概述了Windows或Linux使安全LDAP连接正常工作的基本步骤,并显示了使用ldap_bind的示例。
http://www.novell.com/coolsolutions/tip/5838.html
方法三:
当你启用php_ldap时。windows用户必须在(C:\OpenLDAP\sysconf)目录,linux用户必须在(/etc/openldap)目录,创建一个(ldap.conf)文件因为这是在DLL内部进行了硬编码。在文件中写入以下内容即可:
TLS_REQCERT never
https://lists.horde.org/archives/sork/Week-of-Mon-20040503/001578.html
例1:
$username = 'test'; $passwd = 'UlkIAWH23'; $con = @ldap_connect('ldaps://the.ldap.server', 636); var_dump(@ldap_bind($con, $username, $passwd));
例2:
$ldaphost = "ldap.what.at.greatnet.com"; $ldapport = 389; $ds = ldap_connect($ldaphost, $ldapport) or die("Could not connect to $ldaphost"); if ($ds) { $username = "test"; $upasswd = "UlkIAWH23"; $ldapbind = ldap_bind($ds, $username, $upasswd); if ($ldapbind) {print "Congratulations! $username is authenticated.";} else {print "Nice try, kid. Better luck next time!";} }
登录后可发表评论