web-dev-qa-db-ja.com

更新後、Laravel throws 'bootstrap / cacheディレクトリが存在し、書き込み可能である必要があります'エラー

いくつかのパッケージを更新した「composer update」を使用しました。更新プロセスの間、Webサイトは引き続き機能します。ただし、「コンパイルされたサービスファイルが削除されました」と表示された後、Webサイトは読み込まれず、代わりに次のように表示されます。

Exception in ProviderRepository.php line 190:
The bootstrap/cache directory must be present and writable.

最も奇妙なことは、「composer update」を再度実行すると、コンパイルされたサービスファイルが削除されるまでWebサイトが再び機能し始め、その時点で同じエラーが再度スローされることです。このエラーが表示されたときに行うべき通常のことを既に試しています(chown -Rすべてを正しいユーザー/グループに、chmodですべてのファイルとフォルダーをそれぞれ664と775)。

エラーが「正しい」とは思えないので、私はもう何をすべきかわかりません。

38
Peter Bennink

composer更新を実行した後にこれを試してください:

php artisan cache:clear
124
Jim Wright

Laravelディレクトリファイルで、次を実行します。

Sudo chmod -R 775 bootstrap/cache/
8
mpalencia

ショートバージョンAWS eb cliのようなものを使用してアップロードする場合bootstrap/cacheフォルダー(その内容について話していない)が展開されています。


回答の背景

Amazon Web ServicesのElastic Beanstalkを使用して、Laravelプロジェクトをホストしています。 Laravelを使い始めたばかりなので、その機能についてはあまり知りません。 2日前、OPのエラーメッセージが表示されて、新しい展開がすべてクラッシュしていました。

その日、私は使用していないことに気付きました

 php artisan config:cache

構成をキャッシュして、処理を高速化します。そして、私はcomposer.jsonの「post-install-cmd」と「post-update-cmd "句。
そして、/ bootstrap/cacheのコンテンツをアップロードしないように。ebignoreファイルにステートメントを追加しましたそのコンテンツは環境に依存しているためaka私のローカルホスト設定は本番サーバーでは意味を持ちません)

そしてfacepalmこれがbootstrap/cacheアップロードされたフォルダー(gitと同様、eb cliは空のフォルダーを無視します)。
だから、夜に展開を開始したとき、展開はクラッシュするはずでした。

それで、空のプレースホルダ(たとえば)を配置しました。gitkeep file inbootstrap/cache 。そして、展開は再び機能しています:)
(問題は非常に単純でしたが、いくつかの甘い睡眠時間のためにEBS EC2インスタンスをsshで掘り、掘り下げた後、その理由に気付きました〜。〜)

3
Vinay Vissh

非昇格モードのWindows 10でcmderを使用しています(非管理者)。コマンドphp artisan cache:clearは機能しませんでした。フォルダーbootstrap/cacheは存在しませんでした。フォルダーを作成し、bootstrapとbootstrap/cacheフォルダーの両方から読み取り専用を削除しました。 composer installとcomposer updateの両方が現在機能しています。

1
Sadegh Ameri

最初にこれを行うことができます:

     php artisan cache:clear

動作しない場合!以下のようにパーミッション775を設定する必要があります。

     Sudo chmod -R 775 bootstrap/cache/
1
Hadi Note

プロジェクトフォルダで実行すると動作します

 Sudo chmod -R 777 bootstrap/cache

走るより

 composer update

走るより

 cache:clear
0
mohamed anwer

Webサーバー(たとえばApacheまたはNginx)がフロントエンドとして使用されている場合、ソリューションはWebサーバーグループが所有するディレクトリbootstrap/cacheを作成することです。 Nginxの場合:

 $ Sudo chgrp -R nginx bootstrap/cache
0