J'ai utilisé 'composer update', qui a mis à jour quelques paquets. Pendant le processus de mise à jour, le site Web fonctionne toujours. Cependant, après la mention "Le fichier des services compilés a été supprimé", le site Web ne se charge pas et indique plutôt:
Exception in ProviderRepository.php line 190:
The bootstrap/cache directory must be present and writable.
Le plus étrange est que, lorsque je lance à nouveau 'composer update', le site Web recommence à fonctionner jusqu'à ce que le fichier des services compilés soit supprimé, ce qui provoque à nouveau la même erreur. J'ai déjà essayé les choses habituelles qui devraient être faites lorsque cette erreur apparaît (chown -R tout au bon 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 "correcte" ..
Essayez ceci après avoir exécuté la mise à jour du compositeur:
php artisan cache:clear
Sur votre fichier de répertoire Laravel, exécutez:
Sudo chmod -R 775 bootstrap/cache/
Version abrégée: Si le téléchargement utilise quelque chose comme AWS eb cli _ Vérifiez si le dossier bootstrap/cache (sans parler de son contenu) est en cours de déploiement.
Un peu d’arrière-plan derrière ma réponse
J'utilise Elastic Beanstalk d'Amazon Web Services pour héberger mon projet Laravel. Comme je viens de commencer à utiliser Laravel, je n’ai aucune idée de son fonctionnement. Il y a deux jours, mes nouveaux déploiements se sont tous écrasés à mi-chemin avec le message d'erreur de OP.
Plus tôt ce jour-là, j'ai réalisé que je n'utilisais pas
php artisan config:cache
mettre en cache des configurations pour rendre les choses plus rapides. Et j'ai ajouté la même chose dans les clauses composer.json "post-install-cmd" et "post-update-cmd" .
Et j’ai aussi ajouté une déclaration dans le fichier .ebignore pour ne pas télécharger le contenu de / bootstrap/cache (car son contenu dépend de l’environnement aka mes configurations d’hôte local n’ont aucune signification mon serveur de production)
Et facepalm Je ne savais pas que cela empêcherait le téléchargement du dossier bootstrap/cache (comme Like, git, eb cli ignore les dossiers vides) .
Donc, quand j'ai commencé à me déployer la nuit, les déploiements étaient censés se bloquer .
Donc, je viens de placer un fichier vide réservé (par exemple) .gitkeep fichier dans bootstrap/cache. Et les déploiements fonctionnent à nouveau:)
(Même si le problème était si simple, j’ai compris la raison après le ssh-ing et le creusement d’une instance EBS EC2 pendant quelques heures de sommeil doux ~. ~)
Utilisation de cmder sur Windows 10 en mode non élevé (non-Admin) . Commande php artisan cache: clear ne fonctionnait pas pour moi . et supprimé en lecture seule des dossiers bootstrap et bootstrap/cache . L’installation et la mise à jour de Composer fonctionnent maintenant.
Vous pouvez faire ceci en premier:
php artisan cache:clear
si ça ne marche pas! Vous devez définir l'autorisation 775 comme ci-dessous:
Sudo chmod -R 775 bootstrap/cache/
ça marche pour moi dans le dossier du projet
Sudo chmod -R 777 bootstrap/cashe
que courir
composer update
que courir
cache:clear
Si un serveur Web (par exemple, Apache ou Nginx ) est utilisé en tant que serveur frontal, la solution consiste à rendre le répertoire bootstrap/cache
appartenant au groupe de serveurs Web. Pour Nginx :
$ Sudo chgrp -R nginx bootstrap/cache