laravel crontab不執行的問題
阿新 • • 發佈:2019-02-12
最近在寫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 函式
public function handle() { //測試 寫入檔案 路徑使用絕對路徑$handle = fopen("/usr/share/nginx/html/mylaravel/public/xiazai/1.txt","a+"); fwrite($handle,"test<br/>"); fclose($handle); }
/app/Console/Commands/Kernel.php
1. 設定$commands屬性
protected $commands = [ test::class, ];
2.schedule函式
protected function schedule(Schedule $schedule) { $schedule->command("test:change")->everyMinute(); }
原因:php的路徑並不識別 或者說 crontab 中使用的php的可執行檔案 和在指令碼中執行的php檔案不一樣
執行 whereis php
可以發現 當前有不只一個的php執行檔案 發現自己在使用的php路徑之後 修改 crontab中的配置
crontab -e
* * * * * /usr/local/php7/bin/php /usr/share/nginx/html/mylaravel/artisan schedul:run
解決