2017-11-23 6 views
0

私はそれをまっすぐにカットします。私のタスクスケジューラはcronジョブを自動的に実行していて、唯一私が実行した場合に動作しません。タスクスケジューラLaravel 5.4 cronは自動的にMac OSXを実行しません

php artisan schedule:run 

私はhandle()機能でやっているすべては、次のとおりです。

\Log::info('scheduler running @' . \Carbon\Carbon::now());

これは完璧に実行し、ログインしたときにコマンドが実行されるので、artisanコマンドに間違いはありませんが、cronジョブ自体、またはローカルホストの設定内に何かがあることはわかります。

私はcrontabエントリの2つの方法を試しました。

* * * * * cd Sites/projectname; php artisan schedule:run >> /dev/null 2>&1 

どちら

* * * * * php Sites/projectname/artisan schedule:run >> /dev/null 2>&1

が働いていると私は、私はこのコードを持っている schedule()機能に app/Kernel.phpのようにログに毎分を取得する必要があります。 $schedule->command('send:email')->everyMinute();

は私がphp artisan cache:clearでLaravelのキャッシュをクリアしようとしている任意のヒーローは一日保存することができます私は私のLaravelサーバーを再起動しようとしていると私はsudo apachectl restart

と私のApacheサーバを再起動しましたか?

おかげで解決しよう

+2

代わりに 'php'を使用してください。 –

+0

@MortaddaJafarこれはメールファイルの出力です。 PHP解析エラー:構文解析エラー、& 'または変数(T_VARIABLE)/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php on line 444 –

+1

PHPバージョンを使用しているため、このエラーが発生しました。これはsplat演算子をサポートしていないためです。 。 –

答えて

0

私のための問題をソート@MortaddaJafar

ので、信用は彼にすべてを行きます。

私のLaravelのPHPバージョンは5.6.4で、私のApacheのPHPサーバのバージョンは5.6.30だったので、これは私のPHPバージョンがsplatオペレータをサポートしていなかったため、これが互換性の問題を引き起こしました。 -qを私のcron php -qに置くと、エラーメッセージが/var/mail/nickに送信されるため、問題をデバッグすることができました。

この問題を解決するには、PHPのバージョンに直接パスを適用してcronを実行します。これによりバージョンの問題が回避されます。 which phpを実行してパスを取得し、これをcronに追加します。

* * * * * cd Sites/projectname; /usr/local/bin/php -q artisan schedule:run >> /dev/null 2>&1 

これは、同様の問題に直面している人に役立ちます。

ニック。

関連する問題