当前位置:首页 > CMS教程 > 其它CMS > 列表

laravel 解决crontab不执行的问题

发布:smiling 来源: PHP粉丝网  添加日期:2022-01-15 19:40:44 浏览: 评论:0 

今天小编就为大家分享一篇laravel 解决crontab不执行的问题,具有很好的参考价值,希望对大家有所帮助,一起跟随小编过来看看吧。

最近在写laravel的时候遇到一个定时器的问题

手动的执行 php /usr/share/nginx/html/mylaravel/artisan schedul:run 可以生效

但是写在定时器中却不执行 * * * * * php /usr/share/nginx/html/mylaravel/artisan schedul:run

先看下代码

/app/Console/Commands/test.php

1.设置 $signature 属性

protected $signature = 'test:change';

2.handle 函数

  1. public function handle() 
  2.  //测试 写入文件 路径使用绝对路径 
  3.  $handle = fopen("/usr/share/nginx/html/mylaravel/public/xiazai/1.txt","a+"); 
  4.  fwrite($handle,"test<br/>"); 
  5.  fclose($handle); 
  6.  

/app/Console/Commands/Kernel.php

1. 设置$commands属性

  1. protected $commands = [ 
  2.  test::class
  3. ]; 

2.schedule函数

  1. protected function schedule(Schedule $schedule
  2.  $schedule->command("test:change")->everyMinute(); 

原因:php的路径并不识别 或者说 crontab 中使用的php的可执行文件 和在脚本中执行的php文件不一样

执行 whereis php

可以发现 当前有不只一个的php执行文件 发现自己在使用的php路径之后 修改 crontab中的配置

  1. crontab -e 
  2.  
  3. * * * * * /usr/local/php7/bin/php /usr/share/nginx/html/mylaravel/artisan schedul:run

Tags: laravel不执行 crontab

分享到: