gpt4 book ai didi

CentOS 7 上的 PHP : LDAP could not bind to the server

转载 作者:行者123 更新时间:2023-12-04 10:31:22 26 4
gpt4 key购买 nike

我有以下代码

    public function openConnection()
{
$this->ldapServerHandle = ldap_connect(ConfigH::getConfig()->ldap->host);

$bindDN = ConfigH::getConfig()->ldap->serviceAccount->bindDN;

if ($this->ldapServerHandle) {
$this->ldapBindHandle = ldap_bind(
$this->ldapServerHandle,
$bindDN,
ConfigH::getConfig()->ldap->serviceAccount->password
);
if (!$this->ldapBindHandle) {
$errorMsg = "LDAP::__construct(): Could not bind the service account ".$bindDN;
LoggerH::emergency($errorMsg);
throw new LDAPException($errorMsg);
}
} else {
$errorMsg = "LDAP::__construct(): Could not connect to the LDAP server ".ConfigH::getConfig()->ldap->host;
LoggerH::emergency($errorMsg);
throw new LDAPException($errorMsg);
}
}

问题

从今天早上开始,我遇到了这个错误,让我很头疼: Warning: ldap_bind(): Unable to bind to server: Can't contact LDAP server [...]
在 Windows 上一切正常,当我在 CentOS 生产服务器上执行代码时,它停止工作。

我已经检查过的
  • OpenLDAP 已安装并启用
  • LDAP 服务器可从 CentOS 服务器访问(Kerberos 在同一台机器上没有遇到任何问题)

  • 我已经尝试过的
  • 重新安装php-ldap分机
  • 检查凭据和地址一百万次

  • 附加信息
  • ConfigH::getConfig()->ldap->host 返回类似“adserver.ourcompany.com”的内容,这是我们的 LDAP 服务器的地址
  • ConfigH::getConfig()->ldap->serviceAccount->bindDN 返回一个有效的绑定(bind) DN
  • ConfigH::getConfig()->ldap->serviceAccount->password 返回服务账号的密码
  • 最佳答案

    解决方案

    使用 CentOS 的人获得 SELinux,是的。
    在 Google(例如结果的第 4 页)和 Stackoverflow 中深入挖掘后,我发现问题是由 SELinux 限制 httpd 引起的。尽管防火墙被配置为允许,但仍通过某些端口进行通信,包括 LDAP 端口。

    允许 httpd要通过这些端口进行通信,请运行以下命令

    setsebool -P httpd_can_network_connect 1

    (原解决方案 here(WhoIsRich 的回答))

    关于CentOS 7 上的 PHP : LDAP could not bind to the server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60414534/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com