我写了一个我在终端上运行的特使任务。现在我在我的应用程序中通过按下按钮来运行它。问题是在我的用户运行envoy之前,但现在它是使用nginx用户运行的,该用户没有从Composer安装Envoy并且我收到此错误:
sh: 1: /home/vagrant/.config/composer/vendor/bin/envoy: not found
我该如何解决这个问题?
答案 0 :(得分:0)
如果在不使用全局标记的情况下运行composer require laravel/envoy
,您将在web服务器可以访问的供应商文件夹中找到安装的特使。
要运行任务,请使用vendor文件夹中的envoy路径。例如,
$command = base_path().'/vendor/bin/envoy run mytask';
你可以通过一个过程来运行它,比如$process = new Process($command);
这个过程将像web服务器使用的任何用户一样运行,在你的情况下是nginx。