Php 使用Crontab配置Laravel任务调度
我已经创建了一个laravel任务并添加到我的crontab文件中Php 使用Crontab配置Laravel任务调度,php,laravel,laravel-5,cron,laravel-artisan,Php,Laravel,Laravel 5,Cron,Laravel Artisan,我已经创建了一个laravel任务并添加到我的crontab文件中 app/Console/Kernel.php <?php namespace App\Console; use Carbon; use Illuminate\Console\Scheduling\Schedule; use Illuminate\Foundation\Console\Kernel as ConsoleKernel; class Kernel extends ConsoleKernel {
app/Console/Kernel.php
<?php
namespace App\Console;
use Carbon;
use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
class Kernel extends ConsoleKernel
{
/**
* The Artisan commands provided by your application.
*
* @var array
*/
protected $commands = [
\App\Console\Commands\Inspire::class,
];
/**
* Define the application's command schedule.
*
* @param \Illuminate\Console\Scheduling\Schedule $schedule
* @return void
*/
protected function schedule(Schedule $schedule)
{
$now = Carbon\Carbon::now('America/New_York');
$dt = Carbon\Carbon::parse($now);
$time_start = $dt->toTimeString();
$dt = str_replace('-','_',$dt);
$dt = str_replace(' ','_',$dt);
$dt = str_replace('/',':',$dt);
$schedule->exec('curl '.env('APP_URL').'fbwifi/acl_update')->everyMinute()
->sendOutputTo(public_path().'/tasks/log_'.$dt.'.txt');
}
}
结果 由于某些原因,我的crontab不会触发 5分钟后,我在我的
public/tasks/
文件夹中看不到生成的任何内容
我甚至试着把我的php
的完整路径放进去
我遗漏了什么吗?如何进行调试?在crontab中,您需要设置指向项目根目录中artisan文件的路径
***php/path/to/project/artisan计划:运行
如果您在查找项目路由的绝对路径时遇到困难,请打开terminal,cd
进入项目的路由目录,然后使用pwd
命令,该命令将为您提供绝对目录
例如:
$ cd MyUser/dev/project
$ pwd
将输出如下内容
/Users/MyUser/dev/project
那你的工作看起来像
***php/Users/MyUser/dev/project/artisan计划:运行
还可以尝试重新启动cron守护进程。我发现,有时当我无法运行时,这会有所帮助。在crontab中,必须使用artisan的完整路径命令
php/path/to/your/project/artisan时间表:运行
php如何?不需要?我想/usr/local/bin/
已经在您的路径中了,所以不需要确定。我很难找到我完整的工匠之路。
$ cd MyUser/dev/project
$ pwd