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
après la mise à jour faire
chmod -R gu+w storage
chmod -R guo+w storage
php artisan cache:clear
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!
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.
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