Я пытаюсь создать PHP
wrapper для PowerBI
. Я установил PowerBI Cli
(https://github.com/Microsoft/PowerBI-Cli) на свой локальный компьютер, и когда я запускаю любую команду PowerBI Cli на моем терминале, она работает хорошо. Он работает хорошо, даже когда я запускаю команды с помощью пользователя _www
(sudo -u _www powerbi config
)
Однако, когда я запускаю их через PHP
с помощью shell_exec
или Symphony Process Component
(https://symfony.com/doc/current/components/process.html), я получив следующее исключение:
env: node: No such file or directory.
Я столкнулся с этой проблемой на Mac Sierra
. Команды хорошо работают на Linux
, используя PHP exec()
Попробуйте ссылка,
"ln -s /path/where/command/is stored/ /to/path/where u want to exec/"
Иногда программа хранится в usr/local/bin/program
тем временем по умолчанию вы выполняете в usr/bin/program
И затем в оболочке используйте новый путь, который вы установили.
Пример для ссылки предположим, если у вас есть путь к команде,
/usr/bin/powerbi
, то с помощью команды выше вы можете связать новый путь usr/powerbi
, после чего вы можете использовать новый путь в команде exec или shell.
Попробуйте использовать полный путь, а не команду. Не зная вашего точного пути, я не могу точно сказать, что делать, но это будет примерно так:
$output = shell_exec("sudo -u _www /path/path/powerbi config");
var_dump($output);
Edit:
Или сначала смените каталоги. Поэтому, используя мой пример выше, это будет:
$output = shell_exec("cd /path/path/powerbi; sudo -u _www powerbi config");
_www
. Странно то, что когда я запускаю команду как пользователь _www из терминала, она работает хорошо. Однако, это не тот случай, если я запускаю его через PHP.