質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
cron

cronは、Unix系OS上でデーモンプロセスとして動作する、スクリプトの自動実行が可能なジョブスケジューラです。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

Q&A

2回答

3283閲覧

EC2でLaravelのTaskScheduleを実行したいがキャッシュへの書き込み権限がない

Shichi7

総合スコア35

cron

cronは、Unix系OS上でデーモンプロセスとして動作する、スクリプトの自動実行が可能なジョブスケジューラです。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

0グッド

0クリップ

投稿2019/05/20 09:30

EC2サーバー上のLaravelでTaskScheduleを実行します。

$ php /var/www/html/myapp/artisan schedule:run

Laravelはnginxで動いているので、nginxから実行しようとした結果、キャッシュへの書き込み権限が無いようです。

Running scheduled command: ‘/usr/bin/php-7.1’ ‘artisan’ posts:send > ‘/dev/null’ 2>&1 ErrorException : file_put_contents(/var/www/html/myapp/storage/framework/cache/data/e4/7b/e47bcad220fe3c17e6b38c83a02d492ff804a80e): failed to open stream: Permission denied at /var/www/html/myapp/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:122 118| * @return int 119| */ 120| public function put($path, $contents, $lock = false) 121| { > 122| return file_put_contents($path, $contents, $lock ? LOCK_EX : 0); 123| } 124| 125| /** 126| * Prepend to a file. Exception trace: 1 file_put_contents(“/var/www/html/myapp/storage/framework/cache/data/e4/7b/e47bcad220fe3c17e6b38c83a02d492ff804a80e”, “1558416961b:1;“) /var/www/html/myapp/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:122 2 Illuminate\Filesystem\Filesystem::put(“/var/www/html/myapp/storage/framework/cache/data/e4/7b/e47bcad220fe3c17e6b38c83a02d492ff804a80e”, “1558416961b:1;“) /var/www/html/myapp/vendor/laravel/framework/src/Illuminate/Cache/FileStore.php:65 Please use the argument -v to see more details.

どのように解決したら良いでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

crontabを設定する際のユーザーが書き込めるようになっていれば問題ありません。

実行ユーザーが決まったら、

$ sudo chown -R myuser:mygroup /var/www/html/myapp/storage
$ sudo chmod 770 -R /var/www/html/myapp/storage

を実行すれば問題ないと思います。
パーミッションは環境に合わせてください。

投稿2019/07/07 14:00

dany

総合スコア73

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

Laravelのタスクスケジュールは、基本的にはWebサーバーのユーザーでなく、cronを利用して動かすことを想定しているので、コマンド実行用のユーザーで動かしてみてください。

Laravel 5.8 タスクスケジュール

また、fileキャッシュドライバでエラーになる場合は、
databaseキャッシュやredisキャッシュなど別のキャッシュドライバの利用も検討してみてください。

Laravel 5.8 キャッシュ

投稿2019/05/20 15:51

aro10

総合スコア4106

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問