【问题标题】:PowerBI CLI node: No such file or directoryPowerBI CLI 节点:没有这样的文件或目录
【发布时间】:2017-05-14 21:17:46
【问题描述】:

我正在尝试为PowerBI 构建PHP 包装器。我在本地安装了PowerBI Cli (https://github.com/Microsoft/PowerBI-Cli),当我在终端上运行任何 PowerBI Cli 命令时,它运行良好。即使我使用_www 用户 (sudo -u _www powerbi config) 运行命令,它也运行良好

但是,当我使用shell_execSymphony's Process Component (https://symfony.com/doc/current/components/process.html) 运行它们通过PHP 时,我得到了以下异常:

env: node: No such file or directory.

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

【问题讨论】:

  • 听起来像是一个“$PATH”问题。是否有可能您的 PHP 环境作为另一个用户执行,而不是您通常使用的?例如因为你在‘sudo’ -ing?
  • PHP 环境以_www 用户身份执行。奇怪的是,当我从终端以 _www 用户身份运行命令时,它运行良好。但是,如果我通过 PHP 运行它,则情况并非如此。

标签: php node.js linux powerbi macos-sierra


【解决方案1】:

试试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 命令中使用新路径。

【讨论】:

  • 如果你提供你的原始路径,我可以在我这边检查。
【解决方案2】:

尝试使用完整路径而不是命令。在不知道您的确切路径的情况下,我无法确切地告诉您该做什么,但它会是这样的:

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

【讨论】:

  • 是的,我就是这样使用它的。没有运气。
  • 您是否尝试过先将目录更改为它,然后再运行它?我编辑了我的答案并再次尝试让您尝试。
  • 是的,这就是我执行它的方式 - sudo -u _www /usr/local/bin/powerbi config
  • 如果这不起作用,请先尝试 cd 并发出两个命令。我编辑了我的答案以包含它。
  • 不。那也行不通。设置虚拟机 - 我之前应该做的事情:)
猜你喜欢
  • 1970-01-01
  • 2018-11-12
  • 2019-09-19
  • 2018-08-09
  • 2017-09-13
  • 2015-09-27
  • 1970-01-01
  • 2022-06-23
  • 2020-09-23
相关资源
最近更新 更多