2016-09-05 8 views
0

私は端末から実行していたEnvoyタスクを書きました。今私は、ボタンを押して実行するために私のアプリケーションでビューを作った。 コントローラからenvoyタスクを実行しています

sh: 1: /home/vagrant/.config/composer/vendor/bin/envoy: not found 

がどのように私はこの問題を解決することができます。問題は使者の前に私のユーザーによって実行されていたが、現在はそのではない特使が作曲からインストールされているnginxのユーザで実行されていると、私はこのエラーを取得していますということですか?

+0

これを回避する方法は、envoyを実行するユーザーとしてPHPを実行することです。 – Devon

+0

次に、すべての開発環境にインストールされたパッケージを使用してユーザーを複製する必要がありますか?良い解決策ではありません – Alan

+0

私はあなたが何を期待しているのか分かりません。 envoyを手動で実行すると、ユーザーとして実行されます。あなたは明らかにnginxがユーザnginxの下でPHPを提供するように設定されています。彼らは異なる環境と権限を持っています。 – Devon

答えて

0

グローバルタグを使用せずにcomposer require laravel/envoyを実行すると、Webサーバーがアクセスできるベンダーフォルダーにenvoyがインストールされています。

タスクを実行するには、ベンダーフォルダー内のenvoyへのパスを使用します。例えば、

$command = base_path().'/vendor/bin/envoy run mytask'; 

あなたは、プロセスは、あなたのケースのnginxのでは、ウェブサーバが使用しているものは何でもユーザーとして実行され、プロセスを経て$process = new Process($command);のようなものを、これを実行することができます。

関連する問題