2016-12-30 10 views
5

PowerBIPHPラッパーをビルドしようとしています。ローカルにPowerBI Clihttps://github.com/Microsoft/PowerBI-Cli)をインストールしました。私の端末にPowerBI Cliコマンドを実行するとうまくいきます。私はしかし_wwwユーザー(sudo -u _www powerbi configPowerBI CLIノード:そのようなファイルまたはディレクトリーがありません。

を使用してコマンドを実行するときには、さえうまく機能している私はshell_execまたはSymphony's Process Componenthttps://symfony.com/doc/current/components/process.html)のいずれかを使用してPHPを介してそれらを実行すると、私は次の例外を取得しています:

env: node: No such file or directory. 

私はMac Sierraでこの問題に直面しています。コマンドはLinuxで動作しています。exec()

+0

は '$ PATH'の問題のようです。あなたのPHP環境は通常使用するよりも別のユーザとして実行される可能性はありますか?例えばあなたは何をしているのですか? – fuma

+0

PHP環境は '_www'ユーザとして実行されます。奇妙なのは、端末から_wwwユーザとしてコマンドを実行するとうまくいきます。しかし、PHPで実行した場合はそうではありません。 –

答えて

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

ええ、それは私がそれを使用している方法です。それで運がない。 –

+0

ディレクトリを最初に変更してから実行してみましたか?私はあなたが試してみるために別の試みで私の答えを編集しました。 – Citizen

+0

はい、ここで私はそれを実行しています - 'sudo -u _www/usr/local/bin/powerbi config'。 –

2

あなたはusr/bin/program

に実行し、その後にされているデフォルトどおり

"ln -s /path/where/command/is stored/ /to/path/where u want to exec/" 

は時々プログラムがその間usr/local/bin/programに格納されている、linkingをお試しくださいシェルはあなたが設定した新しいパスを使います。コマンドのパスを持っている場合は、EXECまたはシェルコマンドで新しいパスを使用することができ、その後、

/usr/bin/powerbiはその後、上記のコマンドを使用すると、新しいパスusr/powerbiをリンクさせることができたとリンクするための

例。

+0

動作しません。ここではすべてがとても奇妙です。 –

+0

私の側でこれを確認できるように元のパスを提供している場合。 –

関連する問題