![phpldapadmin 无法连接到 openldap](https://linux22.com/image/666914/phpldapadmin%20%E6%97%A0%E6%B3%95%E8%BF%9E%E6%8E%A5%E5%88%B0%20openldap.png)
我有一个新安装的 openldap 服务器,版本 2.4.39。phpldapadmin 也安装在同一台服务器上,版本 1.2.3
Openldap 正在运行。我可以使用其他 ldap 浏览器工具连接到它。
[root@openldap httpd]# slapd -V @(#) $OpenLDAP: slapd 2.4.39 (Mar 6 2015 04:35:49) $
[email protected]:/builddir/build/BUILD/openldap-4.39/openldap-2.4.39/servers/slapd
[root@openldap httpd]# ldapsearch -x -W -D 'cn=admin,dc=cloud-lab,dc=com' -b "" -s base -H ldap://localhost
Enter LDAP Password:
# extended LDIF
#
# LDAPv3
# base <> with scope baseObject
# filter: (objectclass=*)
# requesting: ALL
#
# dn: objectClass: top objectClass: OpenLDAProotDSE
# search result search: 2 result: 0 Success
# numResponses: 2
# numEntries: 1
当我通过 Web 浏览器登录 phpldapadmin 时,它显示以下错误消息。据slapd.log
我所知,phpldapadmin 进程没有连接。
error Unable to connect to LDAP server Cloud-Lab.Com
error: Can't contact LDAP server (-1) for user
error Failed to Authenticate to server
Invalid Username or Password.
来自 phpldapadmin 的 config.php:
$servers = new Datastore();
$servers->newServer('ldap_pla');
$servers->setValue('server','name','Cloud-Lab.Com');
$servers->setValue('server','host','127.0.0.1');
$servers->setValue('server','port',389);
$servers->setValue('server','base',array('dc=cloud-lab,dc=com'));
$servers->setValue('login','auth_type','session');
$servers->setValue('login','bind_id','cn=admin,dc=cloud-lab,dc=com');
$servers->setValue('login','bind_pass','secret');
答案1
我怀疑 CentOS 的默认 SELinux 配置存在问题。
# getsebool httpd_can_connect_ldap
httpd_can_connect_ldap --> off
# setsebool -P httpd_can_connect_ldap on
# getsebool httpd_can_connect_ldap
httpd_can_connect_ldap --> on
答案2
我在 CentOS 7 中遇到了同样的问题。使用以下命令修改 SELinux 配置后,解决了这个问题。
setsebool -P httpd_can_connect_ldap on
答案3
禁用 SELinux
vi /etc/selinux/config
SELINUX=enforce >> SELINUX=disabled
SELINUXTYPE=targeted >> # SELINUXTYPE=targeted
保存并重启