web-dev-qa-db-fra.com

ErrorException dans Filesystem.php

Problème avec le stockage de session 

Le stockage de session ne fonctionne pas avec mon Laravel 5. Je l’ai utilisé pendant un mois sans problèmes. Mais depuis le dernier téléchargement sur le serveur Web, la réponse suivante s'affiche sur chaque page.

ErrorException in Filesystem.php line 74:
file_put_contents(): Exclusive locks are not supported for this stream

De nombreux messages sur Internet indiquent de supprimer la référence à 

$lock on line 74 in Filesystem.php

Cela semble être une solution rapide qui conduira à d’autres problèmes plus tard ... 

Comment puis-je m'occuper de la cause fondamentale?

Références

https://stackoverflow.com/questions/29023948/laravel-5-file-put-contents-exclusive-locks-are-not-supported-for-this-strehttps: // laracasts.com/discuss/channels/general-discussion/l5-new-install-error

15
Peder Wessel

après la mise à jour faire

chmod -R gu+w storage

chmod -R guo+w storage

php artisan cache:clear
51
maleeb

Si vous utilisez Laravel 5.2.0, vous avez probablement ignoré le dossier storage dans le fichier .gitignore. Le fait est que lorsque vous exécutez composer install sur votre serveur, tous les fichiers du dossier de stockage ne sont pas créés, vous devriez les vérifier!

Dans mon cas, mon dossier de stockage contenait uniquement le dossier logs sans les dossiers app et framework. Vous devez les créer manuellement afin que vous ayez cette structure à la fin:

storage
  - app
  - framework
    - cache 
    - sessions
    - views
  - logs

N'oubliez pas de rendre le dossier storage en écriture!

17
paulalexandru

merci @ Peder-Wessel. Votre réponse est l'explication de la cause mais pas une solution permanente et fonctionnera jusqu'à ce que nous mettions à nouveau à jour les fournisseurs car le fichier Filesystem.php se trouve dans le répertoire du fournisseur Laravel. Un jour, lorsque nous composer update, cela posera de nouveau problème. :( 

Cependant, j'ai pu découvrir que ce problème était dû au fait que la session était enregistrée dans un fichier. J'ai changé cela de 

'driver' => 'file',

à 

'driver' => 'cookie',

dans /app/config/session.php

Les créateurs de laravel devraient peut-être aussi ajouter cela à la configuration, car tous les hébergements (partagés) ne fournissent pas de droits de verrouillage exclusifs.

4
shamanSK

J'ai eu un problème avec la publication de mes actifs de mon paquet avec cette erreur File_put_contents (): les verrous exclusifs ne sont pas pris en charge pour ce flux.

ce paquet aide NoLock

0
Hassan Gilak