0

我有一个使用 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 语句。

我通过稍后在脚本中添加一些额外的代码来解决这个问题,但是必须有一个解决方案来处理上述上下文中的问题?

4

2 回答 2

0

主机名参数可以是空格分隔的主机名列表。这意味着如果主服务器无法运行,LDAP 代码将与备份服务器通信。当代码超时尝试与主服务器通信时会有延迟,但一切仍然有效。

$LDAP_SERVERS = "10.100.10.1 10.100.10.2";
$ldap_mycorp = ldap_connect($LDAP_SERVERS);
于 2013-03-28T14:31:09.823 回答
0

这是你想要的? http://php.net/manual/en/function.ldap-error.php

我不知道没有错误时它会返回什么,但它应该让您朝着正确的方向迈出一步。如果前一个失败,则给出自动连接到多个服务器的答案,您仍然应该检查连接是否没有任何错误;)

于 2013-03-28T14:31:55.827 回答