PHP - 在ldapadd上获取错误代码13

时间:2017-04-26 18:56:56

标签: php

我有一个.ldif文件,想要使用php脚本将其导入我的ldap。 所以,我正在使用该代码:

$comm = "ldapadd -h 'localhost' -p 389 -D 'cn=admin,dc=example,dc=com' -w 'password' -f /var/www/html/test/ldap.ldif";
system($comm,$return);
echo $return;

我总是收到错误代码13,即:

  

LDAP_CONFIDENTIALITY_REQUIRED:表示会话不受传输层安全性(TLS)等协议的保护,该协议提供会话机密性。

看着ldapadd sintax找到了这些选项

  

-W:单向或双向SSL身份验证的电子钱包位置

     

-P电子钱包密码

     

-U SSL认证方式:1表示不认证; 2用于单向认证; 3用于双向认证

但我不知道如何或何时使用它们。 我的.ldif文件包含很多新的命令,并且通过php代码我无法使用:

$info["dn"] = $test;

总是得到关于$ info [“dn”]语法的错误,所以我放弃了并开始尝试使用terminal命令。

非常感谢一些帮助,对我的英语感到抱歉。 谢谢。

1 个答案:

答案 0 :(得分:1)

我的一位朋友找到了答案。 关于代码13错误在命令末尾缺少一个允许TLS连接的选项,因此,正确的命令行是:

ldapadd -h 'localhost' -p 389 -D 'cn=admin,dc=example,dc=com' -w 'password' -f /var/www/html/test/ldap.ldif -Z

因此,最后的选项-Z-ZZ启用了TLS,错误消失了,因此它使用我的.ldif文件在ldap上处理输入

谢谢大家。