错误:自动从模板中删除objectClass,因为它没有在模式中定义

我正在用phpldapadmin在两台不同的CENTOS 7服务器上安装openldap,configuration如下:

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

更改:

olcSuffix:dc = mydomain ,dc = com

olcRootDN:cn = user ,dc = mydomain ,dc = com

olcRootPW: {SSHA} therandomhashfromslappswd

/usr/share/openldap-servers/slapd.ldif中

更改:

134行:n = auth“读取

dn.base =“cn = user ,dc = mydomain ,dc = com”由* none读取行144:

olcSuffix:dc = mydomain ,dc = com第145行:olcRootDN:

cn = user ,dc = mydomain ,dc = com

加:

olcRootPW: {SSHA} therandomhashfromslappswd

/etc/openldap/ldap.conf中

更改:

BASE dc = mydomain,dc = com

URI ldap://hostname.domain.local

跑:

 slaptest -u 

configuration文件testing成功

我收到校验错误如下,但我忽略它。

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 

创build

base.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网站,并通过打开ldap服务器login。

问题:

我收到很多错误:自动从模板中删除ObjectClass – 而我实际上需要它来创buildacct等。

我收到很多错误:自动从模板中删除ObjectClass

有人知道这里有什么问题吗?

我已经花了很多小时搞清楚:(

请让我知道如果有人可以帮助我:)

谢谢,

错误消息似乎相当清楚。 inetOrgPerson未在您的服务器模式中定义。 它不会在默认情况下,它看起来不像你添加它。

inetOrgPerson模式依赖于cosine模式,而依赖于core模式。 核心模式可能默认存在。

 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默认值。