Laravel 5 show ErrorException file_put_contents n’a pas réussi à ouvrir le stream: aucun fichier ou répertoire de ce type (OS Windows)

J’ai un projet sur Laravel 5 et je travaille avec lui au bureau et à la maison aussi. Cela fonctionne bien, mais récemment à la maison, il a cessé de fonctionner. Laravel me montre deux ErrorException

file_put_contents(G:\project\storage\framework\views/751d8a0fd8a7d4138c09ceb6a34bb377aa2d6265.php): failed to open stream: No such file or directory

et

file_put_contents(G:\project\storage\framework/sessions/aIXycR4LIAUBVIqZu0T590paOMIpV8vfZGIroEp0): failed to open stream: No such file or directory .

Je suis à la recherche de problèmes avec Google et à trouver des informations sur les droits corrects. Tous les conseils concernent Linux, mais je travaille aussi sous Windows au bureau et à la maison.

Lorsque j’essaie d’effacer le cache de l’application et d’afficher le cache, une conversation artisanale avec moi … effacée. Mais les données de cache et les vues sont présentes dans le stockage.

Comment puis-je résoudre ce problème?

Merci d’avance!

Après quelques recherches, je comprends – j’ai des emplacements de projet racine très similaires, mais différents, et mis en cache dans /bootstrap/cache . Après le démarrage du projet de suppression du cache Merci à tous les auteurs d’answear!

La meilleure façon de résoudre ce problème est d’aller dans le répertoire “laravel / bootstrap / cache” et de supprimer le fichier config.php. ou vous pouvez aussi le renommer comme config.php.old Et votre problème sera résolu. Heureux codage 🙂

Ce type de problème survient généralement lors de la migration d’un serveur vers un autre, d’un dossier à un autre. Laravel conserve le cache et la configuration (nom du fichier) lorsque le dossier est différent, alors ce problème se produit.

Solution Exécuter la commande suivante:

 php artisan config:cache 

https://laravel.com/docs/5.6/configuration#configuration-caching

Vous devez généralement exécuter la commande php artisan config: cache dans le cadre de votre routine de déploiement de production. Je vous suggère

  1. Supprimer le fichier de cache de configuration
  2. Videz le cache de l’application
  3. Créez un fichier de cache pour un chargement plus rapide de la configuration

Pour ce faire, exécutez les commandes Artisan suivantes sur votre ligne de commande.

  1. php artisan config: effacer
  2. php cache artisanal: effacer
  3. php artisan config: cache

Si vous n’avez pas access à la ligne de commande sur votre serveur, vous pouvez exécuter des commandes telles que celle-ci:

 Route::get('/clear-cache', function() { $exitCode = Artisan::call('config:clear'); $exitCode = Artisan::call('cache:clear'); $exitCode = Artisan::call('config:cache'); return 'DONE'; //Return anything }); 

J’espère que ceci est utile.

Il y a peut-être un problème avec votre fichier de composition. Tu pourrais essayer:

  • L’installation de composeur installe les paquetages fournisseurs en fonction de composer.lock (ou crée composer.lock s’il n’est pas présent),
  • La mise à jour du composeur régénère toujours composer.lock et installe les dernières versions des paquetages disponibles basés sur composer.json

  • compositeur dump-autoload ne téléchargera rien. Il régénère simplement la liste de toutes les classes à inclure dans le projet (autoload_classmap.php). Idéal lorsque vous avez une nouvelle classe dans votre projet. Idéalement, vous exécutez composer dump-autoload -o pour un chargement plus rapide de vos pages Web. La seule raison pour laquelle ce n’est pas par défaut, c’est que cela prend un peu plus de temps à générer (mais n’est que légèrement visible)

la source

La raison de ce problème est les fichiers de cache dans localhost. Selon ce que j’ai essayé plusieurs fois pour effacer le cache sur mon projet, mais chaque fois que j’ai échoué.

  • Essayé d’effacer les commandes cahe en changeant le fichier web.php (avec les codes artisanaux)
  • Essayé d’effacer le cache en connectant SSH (via PUTTY)
  • J’ai essayé d’héberger mon projet dans le sous-domaine dans un nouveau répertoire public

J’ai donc trouvé une solution à ce problème après que toutes les étapes ci-dessus aient échoué et que cela a fonctionné parfaitement pour moi. J’ai supprimé le fichier cache.php dans le répertoire host_route / bootstrap / cache .

Je pense que cette réponse aidera votre problème.

J’ai eu des problèmes similaires à cause de .gitignore pour le dossier /storage sur la première machine, puis le référentiel cloné sur la seconde machine et laravel a été révisé pour écrire le cache des sessions

Ainsi, créer manuellement un dossier /storage/sessions pourrait être une solution.