こんにちは、ryohei(@ityryohei)です!

本記事は、Laravelで複数の端末を使ってプロジェクトを開発している場合にphp artisan cache:clearを実行した際にパーミッションエラーになった場合の解決方法をご紹介しています。

私は自宅と会社の昼休みを利用してLaravelでWebアプリを開発しています。バージョンは「Laravel 5.8」になります。複数の端末でプロジェクトを開発していると同じ陥るエラーかと思います。初歩的なものになりますが、同様のエラーでお悩みの方の参考になれば幸いです!

では、解説していきます。

エラーが発生した状況について

エラーが発生した状況についてお話します。

自宅で構築したLaravelのプロジェクトを会社のコピーして、会社のファイルを更新します。多くのファイルを更新したため、キャッシュをクリアしようと下記のコマンドを叩きました。

php artisan cache:clear

スコーンとエンターキーを叩くと、下記のエラーが。

Failed to clear cache. Make sure you have the appropriate permissions.

何事かと思い、xampp環境でページを表示してみました。画面に表示されていたメッセージは下記の通りです。

file_put_contents(C:\xampp\htdocs\project\storage\framework/sessions/{hash}):
failed to open stream: No such file or directory

エラーメッセージはちゃんと取れているので、後はググるだけだと思い、有志の方々の投稿を参考に下記の方法を試してみました。

  • sessions配下の「data」ディレクトリを再作成
  • cache配下の「data」ディレクトリを再作成
  • view:clear、route:clearの実行

ですが、まったくもって変化なく、状況は改善しません。この時点で昼休みが30分くらい経過していたかと思います。早くコーディングさせてください!と焦りつつ色々な方法を試していきます。

結局、どうやって解決したのか

長々とお話しましたが、結局のところ下記のコマンドを実行することで解決しました。

php artisan config:cache

キャッシュを再作成することで問題なく表示されるようになりました。

最後に

Laravelはまだ触り始めたばかりでわからないことだらけですが、一つ教訓ができました。

設定ファイルを編集した後、同じソースを違う端末で使用する場合はキャッシュのクリアと再作成する!

そんな癖をつけたいと思います。

現在Laravelで構築しているWebアプリは近日中に公開できるかと思います。あまり複雑なプログラムではないですが、アプリの紹介と合わせて構築するためにやったことなどをまとめて記事にできればと思っています。わからないことは多いけれど、Laravelは楽しいですね!

以上、Laravelで複数の端末を使ってプロジェクトを開発している場合にphp artisan cache:clearを実行した際にパーミッションエラーになった場合の解決方法のご紹介でした!