ldap_add错误太模糊了

时间:2011-02-08 16:54:28

标签: php ldap

我正在使用php-ldap来管理linux机器上的posix帐户。我能够在php中搜索数据库。我可以通过命令行“ldapadd”添加用户。但是,当我尝试通过PHP ldap_add添加用户时,出现“Object class violation”错误(错误65)。

我已经尝试了我能想到的一切,但错误没有改变。我甚至看过是否有替代php-ldap,但还没找到。

问题是当我在常规LDAP指南中查找该错误时,它说“返回此错误时,要添加的条目或修改的条目违反了对象类架构规则。通常会返回错误的附加信息详细说明违规行为。“然后列出了8个可能的原因。

我需要更深入的错误,但找不到它。 ldap_error也没有帮助。有什么想法如何在这里挖钱?

5 个答案:

答案 0 :(得分:2)

我想出了如何深入挖掘。我正在使用Ubuntu将日志转储到/ var / log / {debug,syslog}

为了获得更多信息,我必须在/etc/ldap/slapd.d/cn=config.ldif中将日志级别增加到424

然后我能够看到日志中的错误告诉我我做错了什么...使用带有inetOrgPerson objectClass的dc属性。

感谢。

答案 1 :(得分:1)

对象类违规始终意味着您创建的对象违反了架构的期望。

如果您只是将调试级别设置为某个非常高的数字,则slapd会提供一吨的日志记录。

答案 2 :(得分:0)

PosixAccount(Linux用户所需的类)具有一些必需属性。您必须在同一操作中提供:

  • uid
  • uidNumber
  • 的gidNumber
  • homeDirectory的

或许在一种方法中,你不是吗?

答案 3 :(得分:0)

ldap_error文档下的comment表示,要获取其他信息,可以调用此方法:

ldap_get_option($conn, LDAP_OPT_DIAGNOSTIC_MESSAGE, $err);
// $err now contains the additional info

答案 4 :(得分:-1)

我们遇到了同样的问题,因此我们使用了以下bash命令:

sudo tail -f syslog |grep slapd

因此,您将有一个实时窗口向您显示LDAP操作的详细反应。