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 );
这会运行之前定义的计划。
我想将程序 (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 );
这会运行之前定义的计划。