从控制器运行特使任务

时间:2016-09-05 13:50:32

标签: php laravel nginx laravel-envoy

我写了一个我在终端上运行的特使任务。现在我在我的应用程序中通过按下按钮来运行它。问题是在我的用户运行envoy之前,但现在它是使用nginx用户运行的,该用户没有从Composer安装Envoy并且我收到此错误:

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

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

如果在不使用全局标记的情况下运行composer require laravel/envoy,您将在web服务器可以访问的供应商文件夹中找到安装的特使。

要运行任务,请使用vendor文件夹中的envoy路径。例如,

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

你可以通过一个过程来运行它,比如$process = new Process($command);这个过程将像web服务器使用的任何用户一样运行,在你的情况下是nginx。