コマンドphp artisan schedule:run
を実行すると正常に動作します。しかし、私は次のようにスケジューラにコマンドを入れます:(CentOS 6)crontabでArtisanコマンドを実行すると、反射例外が発生する
* * * * * php /PATH/TO/PROJECT/artisan schedule:run >> /PATH/TO/PROJECT/storage/logs/scheduler.log 2>&1
実行するたびに次のエラーが発生します。
PHP Fatal error: Uncaught ReflectionException: Class log does not exist ...
This questionは、それが原因でブートストラッププロセスの早い段階で起こるとロガーが登録される前にエラーをログに記録しようとすると、エラーのだということを示しています。
これは私が得る唯一のコールスタックであるので、私はデバッグを開始する場所を見つけ出すように見えることはできません。
PHP Fatal error: Uncaught ReflectionException: Class log does not exist in /PATH/TO/PROJECT/vendor/laravel/framework/src/Illuminate/Container/Container.php:734
Stack trace:
#0 /PATH/TO/PROJECT/vendor/laravel/framework/src/Illuminate/Container/Container.php(734): ReflectionClass->__construct('log')
#1 /PATH/TO/PROJECT/vendor/laravel/framework/src/Illuminate/Container/Container.php(629): Illuminate\Container\Container->build('log', Array)
#2 /PATH/TO/PROJECT/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(697): Illuminate\Container\Container->make('log', Array)
#3 /PATH/TO/PROJECT/vendor/laravel/framework/src/Illuminate/Container/Container.php(849): Illuminate\Foundation\Application->make('log')
#4 /PATH/TO/PROJECT/vendor/laravel/framework/src/Illuminate/Container/Container.php(804): Illuminate\Container\Container->resolveClass(Object(ReflectionParameter))
#5 /PATH/TO/PROJECT/vendor/laravel/framework/src/Illuminate/Container/Container.php(773): Illuminate\Container\Container in /PATH/TO/PROJECT/vendor/laravel/framework/src/Illuminate/Container/Container.php on line 734
私はそれが権限とは何かを持っていることが疑われる、しかし、crontabファイルがに結びついていますそれを手動で実行する同じユーザー。元のエラーの原因は何ですか?
"php artisan schedule:run"を手動で(CRONを使用せずに)実行してみましたか?同じエラーが出ますか? |編集:また、おそらく関連http://stackoverflow.com/a/34992628/3551175 – Skysplit
私は元の投稿でその質問にリンクしています。この例外は、Laravel Logクラスが登録されているため、フレームワークをトリガーしてログに記録するさまざまなエラーによって引き起こされる可能性があります。 – Jeff