我有一个.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命令。
非常感谢一些帮助,对我的英语感到抱歉。 谢谢。
答案 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上处理输入
谢谢大家。