我在 2 个不同的 CENTOS 7 服务器中使用 phpldapadmin 安装 openldap,配置如下:
openldap 服务器:
firewall-cmd --permanent --add-service=ldap
firewall-cmd --permanent --add-port=389/tcp
firewall-cmd --reload
yum install -y openldap openldap-clients openldap-servers
slappasswd
设置密码并记下哈希值
在:/etc/openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif
改变:
olc后缀:dc=我的域名,直流=通信
olcRootDN: cn=用户,直流=我的域名,直流=通信
olcRootPW:{SSHA}来自slappswd 的随机哈希
在/usr/share/openldap 服务器/slapd.ldif
改变:
第 134 行:n=auth”读取者
dn.base="cn=用户,直流=我的域名,dc=com" 由 * none 读取 第 144 行:
olc后缀:dc=我的域名,dc=com 第 145 行: olcRootDN:
cn=用户,直流=我的域名,直流=通信
添加:
olcRootPW:{SSHA}来自slappswd 的随机哈希
在/etc/openldap/ldap.conf
改变:
BASE dc = mydomain,dc = com
URI ldap://主机名.域名.local
跑步:
slaptest -u
配置文件测试成功
我收到如下的校验和错误,但我忽略了它。
54a39508 ldif_read_file:“/etc/openldap/slapd.d/cn=config/olcDatabase={1}monitor.ldif”上的校验和错误
54a39508 ldif_read_file:“/etc/openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif”上的校验和错误
跑步:
systemctl enable slapd
systemctl start slapd
systemctl restart slapd
cd /etc/openldap/
vi base.ldif
创造
基础LDIF文件
如下:
dn: dc=mydomain,dc=com
objectClass: dcObject
objectClass: organization
o: mydomain.com
dc: mydomain
dn: ou=users,dc=mydomain,dc=com
objectClass: organizationalUnit
objectClass: top
ou: users
dn: ou=groups,dc=mydomain,dc=com
objectClass: organizationalUnit
objectClass: top
ou: group
最后运行:
ldapadd -x -W -D "cn=root,dc=mydomain,dc=com" -f base.ldif
systemctl restart slapd
phpldapadmin 服务器:
跑步:
yum -y install httpd
firewall-cmd --add-service=http
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --add-port=443/tcp
firewall-cmd --reload
systemctl restart httpd.service
systemctl start httpd.service
systemctl enable httpd.service
yum -y install php php-mbstring php-pear php-ldap
systemctl restart httpd.service
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
sudo rpm -Uvh remi-release-6*.rpm epel-release-6*.rpm
yum --enablerepo=epel -y install phpldapadmin
setsebool -P httpd_can_connect_ldap on
结果:
连接工作正常,我可以访问 phpldapadmin 站点并通过 open ldap 服务器登录。
问题:
我收到很多错误:自动从模板中删除 ObjectClass - 而我实际上需要它来创建 acct 等。
有谁知道这里出了什么问题?
我已经花了相当多的时间来弄清楚:(
如果有人可以帮助我,请告诉我:)
谢谢,
和
答案1
这些错误对功能没有影响。您可以通过在 /etc/phpldapadmin/config.php 中取消注释此行来隐藏这些模板错误消息:
$config->custom->appearance['hide_template_warning'] = true;
答案2
错误消息似乎相当清楚。inetOrgPerson
未在服务器架构中定义。默认情况下它不会存在,而且看起来您没有添加它。
inetOrgPerson
schema 依赖于cosine
schema,schema 又依赖于core
schema。默认情况下,核心 schema 可能存在。
ldapadd <auth for cn=config> -f /etc/openldap/schema/core.ldif
ldapadd <auth for cn=config> -f /etc/openldap/schema/cosine.ldif
ldapadd <auth for cn=config> -f /etc/openldap/schema/inetorgperson.ldif
您可能需要进行一些破解/etc/openldap/slapd.d/cn=config.ldif
才能获得写入权限cn=config
。许多发行版没有合理的 OpenLDAP 默认值。