我有一个使用LDAP身份验证的网站。我有两个活动目录服务器用于冗余。如果主服务器关闭,则应由备份服务器处理身份验证。我尝试使用以下方法来实现这一目标:
$LDAP_SERVER = "10.100.10.1";
$LDAP_SERVER_BACKUP = "10.100.10.2";
$ldap_mycorp = ldap_connect($LDAP_SERVER);
if(!$ldap_mycorp){
$ldap_mycorp = ldap_connect($LDAP_SERVER_BACKUP);
}
但我注意到,如果与主服务器的连接失败,'ldap_connect($ LDAP_SERVER)'将返回资源ID而不是false,这意味着永远不会使用if语句。
我想通过在脚本中添加一些额外的代码来解决这个问题,但是必须有一个解决方案来处理上述环境中的问题?
答案 0 :(得分:0)
主机名参数可以是以空格分隔的主机名列表。这意味着如果主服务器不可操作,LDAP代码将与备份服务器通信。当代码超时尝试与主服务器通信时会有延迟,但事情仍然有效。
$LDAP_SERVERS = "10.100.10.1 10.100.10.2";
$ldap_mycorp = ldap_connect($LDAP_SERVERS);
答案 1 :(得分:0)
这是你在找什么? http://php.net/manual/en/function.ldap-error.php
我不知道在没有错误的情况下它会返回什么,但是它应该让你朝着正确的方向迈出一步。如果上一次失败,答案是自动连接到多个服务器,您仍应检查连接是否有任何错误;)