我正在使用php-ldap来管理linux机器上的posix帐户。我能够在php中搜索数据库。我可以通过命令行“ldapadd”添加用户。但是,当我尝试通过PHP ldap_add添加用户时,出现“Object class violation”错误(错误65)。
我已经尝试了我能想到的一切,但错误没有改变。我甚至看过是否有替代php-ldap,但还没找到。
问题是当我在常规LDAP指南中查找该错误时,它说“返回此错误时,要添加的条目或修改的条目违反了对象类架构规则。通常会返回错误的附加信息详细说明违规行为。“然后列出了8个可能的原因。
我需要更深入的错误,但找不到它。 ldap_error也没有帮助。有什么想法如何在这里挖钱?
答案 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用户所需的类)具有一些必需属性。您必须在同一操作中提供:
或许在一种方法中,你不是吗?
答案 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操作的详细反应。