我正在尝试为PHP
构建PowerBI
包装器。我在我的本地安装了PowerBI Cli
(https://github.com/Microsoft/PowerBI-Cli),当我在终端上运行任何PowerBI Cli命令时,它运行良好。即使我使用_www
用户(sudo -u _www powerbi config
)
但是,当我使用PHP
或shell_exec
(https://symfony.com/doc/current/components/process.html)运行Symphony's Process Component
时,我收到以下异常:
env: node: No such file or directory.
我在Mac Sierra
面临这个问题。这些命令在使用PHP Linux
exec()
上运行良好
答案 0 :(得分:3)
尝试linking,
"ln -s /path/where/command/is stored/ /to/path/where u want to exec/"
有时,程序存储在usr/local/bin/program
,同时默认情况下,您正在usr/bin/program
执行
然后在shell中使用你设置的新路径。
链接示例假设您有命令路径,
/usr/bin/powerbi
然后使用上面的命令,您可以链接新路径usr/powerbi
,之后您可以在exec或shell命令中使用新路径。
答案 1 :(得分:1)
尝试使用完整路径而不是命令。在不知道你的确切路径的情况下,我无法确切地告诉你该做什么,但它会是这样的:
$output = shell_exec("sudo -u _www /path/path/powerbi config");
var_dump($output);
编辑:
或者,首先更改目录。所以使用上面的例子,它将是:
$output = shell_exec("cd /path/path/powerbi; sudo -u _www powerbi config");