PowerBI CLI node: 没有此文件或目录。

6
我正在尝试为PowerBI构建PHP封装器。我在本地安装了PowerBI Cli (https://github.com/Microsoft/PowerBI-Cli),当我在终端上运行任何PowerBI Cli命令时,它都能正常工作。甚至在使用_www用户(sudo -u _www powerbi config)运行命令时也能正常工作。
然而,当我尝试通过PHP使用shell_execSymfony的Process Component (https://symfony.com/doc/current/components/process.html)来运行这些命令时,会出现以下异常:
env: node: No such file or directory.

我在Mac Sierra上遇到了这个问题。使用PHP的exec()命令在Linux上运行良好。


听起来像是一个´$PATH´问题。你的PHP环境是否以另一个用户的身份执行,而不是你通常使用的用户?例如,因为你正在使用´sudo´吗? - fuma
PHP环境是以“_www”用户执行的。奇怪的是,当我作为终端中的“_www”用户运行命令时,它可以正常工作。但是,如果我通过PHP运行它,则情况并非如此。 - Tosho Trajanov
2个回答

3
尝试链接,可以参考此链接
"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 命令中使用新路径。

如果您提供您的原始路径,我可以在我的端上进行检查。 - Abhishek Gurjar

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");

是的,我就是这样使用它的。但是没有成功。 - Tosho Trajanov
你尝试过先切换到该目录,然后再运行它吗?我编辑了我的答案,并为你提供了另一种尝试的方法。 - Citizen
是的,这是我执行它的方式 - sudo -u _www /usr/local/bin/powerbi config - Tosho Trajanov
如果那不起作用,先尝试cd并发出两个命令。我编辑了我的答案以包含它。 - Citizen
不行,这也不起作用。设置虚拟机——这是我以前应该做的事情 :) - Tosho Trajanov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接