67 votes

Laravel émet l'erreur «Le répertoire bootstrap / cache doit être présent et inscriptible» après la mise à jour

J'ai utilisé "compositeur de la mise à jour", qui ont mis à jour quelques paquets. Pendant le processus de mise à jour du site web fonctionne toujours. Toutefois, après, il dit "compilé Le fichier a été supprimé", le site ne se charge pas et au lieu dit:

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

Le plus étrange, c'est que quand j'exécute 'compositeur de la mise à jour" encore une fois, le site fonctionne de nouveau, jusqu'à ce que la compilation des services de fichier est supprimé, à quel point il jette la même erreur à nouveau. J'ai déjà essayé les choses habituelles qui doit être effectuée lorsque cette erreur s'affiche (chown -R tout à la droite de l'utilisateur/groupe et chmod tous les fichiers et dossiers 664 et 775, respectivement).

Je ne sais plus quoi faire, car l'erreur ne semble pas "correct"..

193voto

Jim Wright Points 1338

Essayez ceci après avoir exécuté la mise à jour du compositeur:

 php artisan cache:clear
 

21voto

mpalencia Points 2058

Sur votre fichier de répertoire Laravel, exécutez:

 sudo chmod -R 775 bootstrap/cache/
 

6voto

Vinay Vissh Points 329

Version courte: Si le téléchargement en utilisant quelque chose comme AWS eb cli Vérifier si bootstrap/cache de dossier (pas de parler de son contenu) est en cours de déploiement.


Certains arrière-plan de ma réponse

Je suis à l'aide d'Amazon Web Services aws Elastic Beanstalk pour héberger mon Laravel projet. Comme je viens de commencer à l'aide de Laravel je n'ai pas beaucoup d'idée sur son fonctionnement. Deux jours avant, Mes nouveaux déploiements étaient tous de s'écraser à mi-chemin avec des OP message d'erreur.

Plus tôt dans la journée, j'ai réalisé que je n'étais pas à l'aide de

 php artisan config:cache

pour les configurations de cache pour rendre les choses plus vite. Et j'ai ajouté de même dans compositeur.json's "post-install-cmd" et "post-update-cmd" clauses.
Et j'ai aussi ajouté la déclaration .ebignore fichier pour ne pas charger le contenu de /bootstrap/cache (comme son contenu est dépendante de l'environnement une.k.un mon localhost configurations n'ont pas de sens sur mon serveur de production)

Et facepalm je n'ai pas réalisé que cela va arrêter le bootstrap/cache de dossier en cours de téléchargement (comme git, eb cli ignore les dossiers vides).
Donc, quand j'ai commencé à déployer la nuit, Les déploiements étaient destinés à l'écrasement.

Donc, maintenant, j'ai juste placé vide-emplacement réservé (dire) .gitkeep fichier bootstrap/cache. Et les déploiements de travail une fois de plus :)
(Si le problème était tellement simple que j'ai réalisé à la raison après ssh-ing et en creusant une EBS instance EC2 pour certains douces heures de sommeil ~.~ )

3voto

Sadegh Ameri Points 148

J'utilise cmder sur Windows 10 en mode non élevé (non-administrateur). commande php artisan cache: clear n'a pas fonctionné pour moi. Le dossier bootstrap / cache n'existait pas. J'ai créé le dossier et supprimé en lecture seule les dossiers bootstrap et bootstrap / cache. L'installation et la mise à jour du compositeur fonctionnent maintenant.

-1voto

Mugoma J. Okomba Points 1520

Si un serveur Web (par exemple Apache ou Nginx ) est utilisé en tant que serveur frontal, la solution consiste à attribuer le répertoire bootstrap/cache au groupe de serveurs Web. Pour Nginx :

  $ sudo chgrp -R nginx bootstrap/cache
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X