HRR Co., Ltd.

技術的な記録を残していくことを目的としています。1次情報を大事にしています。

php artisan cache:clear に失敗するときの解決方法(の1つ)

はじめに

あるとき、Laravelにてキャッシュクリアコマンドを叩いたときに、permissionを理由に怒られました(下記)。
その解決方法の1つです。他の原因で同名のエラーが発生する可能性もあると思いますが、私はこれで直りました、ということで。

$ php artisan cache:clear
Failed to clear cache. Make sure you have the appropriate permissions.

私の環境のLaravelのバージョンは6.20.34でした。

$ php artisan --version
Laravel Framework 6.20.34

対応策

$ mkdir storage/framework/cache/data

これだけでした。
どうもデフォルトで作成されるディレクトリらしく、私の場合dataディレクトリが消えておりました(多分消した?)。
手動で作ってあげると上記エラーは出なくなります。

参考

github.com

The "data" directory (storage/framework/cache/data) doesn't exist by default, which causes the check at

// framework/src/Illuminate/Cache/FileStore.php
 if (! $this->files->isDirectory($this->directory)) { 
     return false; 
 } 
// framework/src/Illuminate/Cache/Console/ClearCommand.php
 if (! $successful) { 
     return $this->error('Failed to clear cache. Make sure you have the appropriate permissions.'); 
 } 

既にあるものとして、処理が進んでいるってことですね。

おわりに

フレームワークを使っていると、やはり本体のコードを読まないといけないときって訪れるんですよね…
今回は読む前にGoogle先生に聞いてしまいましたが。

以上でした!