【发布时间】:2012-02-20 09:23:51
【问题描述】:
我需要从 PHP 脚本(使用浏览器,而不是命令行)在我的桌面计算机 (localhost) 中执行 kdiff3 命令。我已授予正在执行脚本的用户 www-data 使用 visudo 执行 kdiff3 的权限。事实上,如果我以 www-data 身份登录,我可以毫无问题地执行它(sudo kdiff3 ...,它被配置为根本不要求输入密码)。
问题是当我尝试从 PHP 脚本执行此命令时。我试过这个:
$output = shell_exec("sudo kdiff3 -m $file.def.old $file $file.def -o $file");
什么也没发生(输出为 NULL)。如果我尝试使用非交互式命令,例如 ls 它会起作用:
$output = shell_exec("ls");
发生了什么事?为什么不能执行交互式命令?
【问题讨论】: