Laravel 来自 PHP 的 Artisan 调用,没有 CLI 终端

Laravel Artisan call from PHP without CLI terminal

我想将程序 (Freescout) 用作 Laravel 程序。 它工作正常,除了 我必须做一个 cron 工作: * * * * * php /var/userdata/web/.../website/helpdesk/artisan schedule:run >> /dev/null 2>&1

,但我不能在终端中 运行 它,不能使用任何 CLI,只需设置一个 Cron 到 运行 PHP 脚本。 (共享托管服务器)。

所以我创建了一个名为 artisan_schedule_runner.php 的文件 这很简单:

Route::get('/foo', function () {
    Artisan::call('schedule:run >> /dev/null 2>&1');
    //
});

我应该如何扩展我的代码以使其工作?

提前致谢!

看来我找到了解决办法,解决了我的问题:

$kernel = $app->make(Illuminate\Contracts\Console\Kernel::class); 
$input = new Symfony\Component\Console\Input\ArrayInput(['command' => 'schedule:run']);
$output = new Symfony\Component\Console\Output\StreamOutput(fopen('output.log', 'a', false)); 
$status = $kernel->handle( $input, $output );

这会运行之前定义的计划。