【发布时间】:2020-07-27 16:22:04
【问题描述】:
我有一个在 Laravel Command 中触发的特使脚本。
php artisan proxy:update
public function handle() {
exec("envoy run update");
}
如果我在命令行上以php artisan proxy:update 运行它,它可以工作。
但是,如果我在我的 Laravel 应用程序中以 Artisan::call('proxy:configure'); 运行它,它就不起作用。
在控制台whoami = vagrant;同样在我的命令中exec('whoami') 也是流浪者。
如果我把它改成
$out = shell_exec('envoy run update');
dd($out);
在命令行中显示输出,但使用Artisan::call(),它返回空字符串。
exec() 与 artisan 命令一起使用可能会出现什么问题?
【问题讨论】:
-
据我了解,php-fpm 阻止了它。我尝试使用 Symfony's Process 而不是 exec() 并且我被“终止”了。然后我将
Artisan::call()移动到Artisan::queue()并且它起作用了。我很高兴知道是否有人有任何其他解释。
标签: php laravel exec shell-exec laravel-envoy