2016-08-26 3 views
0

コマンド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ファイルがに結びついていますそれを手動で実行する同じユーザー。元のエラーの原因は何ですか?

+0

"php artisan schedule:run"を手動で(CRONを使用せずに)実行してみましたか?同じエラーが出ますか? |編集:また、おそらく関連http://stackoverflow.com/a/34992628/3551175 – Skysplit

+0

私は元の投稿でその質問にリンクしています。この例外は、Laravel Logクラスが登録されているため、フレームワークをトリガーしてログに記録するさまざまなエラーによって引き起こされる可能性があります。 – Jeff

答えて

0

特に私のエラーの原因を見つけました(他の人と異なる場合があります)。多くのソースファイルを使ってデバッグしたところ、問題の原因はPDO拡張がロードされていないことでした。なぜこれがcron-jobとして実行されている場合にのみ当てはまるのかわかりません。

メモ:設定フェーズで同じ問題が発生することが多いようですので、同じ例外が発生した場合はデバッグを開始することをお勧めします。

関連する問題