我需要从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");
Run Code Online (Sandbox Code Playgroud)
没有任何反应(输出为NULL).如果我尝试非交互式命令,就像ls一样:
$output = shell_exec("ls");
Run Code Online (Sandbox Code Playgroud)
发生了什么?为什么不能执行交互式命令?