我正在开发一个代码,该代码使用ldap_search
Shell脚本命令,使用用户ID和正确的 LDAP服务器身份验证从Active Directory中提取用户信息。我从ldap_search
脚本获得了准确的结果。
但是,每当我将shell脚本放在exec
或shell_exec
PHP命令中时,我都没有得到任何东西。
除了exec
之外,所有其他shell脚本在PHP ldap_search
命令的帮助下工作正常。
还有一些额外的任务要做吗?
ldap_search
和exec/shell_exec
彼此不兼容吗?
答案 0 :(得分:0)
您必须使用echo exec('your command or script');
确保有权运行它。我的意思是,Web用户必须具有执行该权限的权限。
似乎显而易见,但我认为你的失败是基于这样的事情。您必须使用echo来显示命令的结果。
编辑在阅读完关于它的新评论并使用该新信息之后...我看到您正在尝试将输出重定向到文件...但是您可能有2个不同的问题。< / p>
让正在执行php(通常是www-data)权限的用户写入php所在的文件夹?
您的代码在引号内引号必须使用转义。试试这个:
<?php exec("ldapsearch -x -v -h 'LDAP://server' -p '389' -D 'uid=\"domain_user_id\",ou=users,ou=internal,o=\"organization\"' -w 'domain_password' -b 'ou=users,ou=internal,o=organization' 'uid=person's_user_id' >> result.txt"); ?>
如果您想要输出文件,则不需要echo。重定向>>
可以在执行的命令中,而不是在php中。
请记住,>
会替换de文件,并在文件末尾添加>>
添加内容。