wake-up-neo.com

ErrorException in Filesystem.php

Problem mit Sitzungsspeicher 

Sitzungsspeicher funktionierte nicht mit meinem Laravel 5. Benutzte ihn einen Monat lang ohne Probleme. Aber seit dem letzten Upload auf den Webserver bekomme ich auf jeder Seite die folgende Antwort.

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

Viele Beiträge im Internet weisen darauf hin, den Verweis auf zu entfernen 

$lock on line 74 in Filesystem.php

Scheint wie eine schnelle Lösung, die zu weiteren Problemen führen wird ... 

Wie kümmere ich mich um die Ursache?

Verweise

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

nach dem Update machen

chmod -R gu+w storage

chmod -R guo+w storage

php artisan cache:clear
51
maleeb

Wenn Sie Laravel 5.2.0 verwenden, haben Sie wahrscheinlich den Ordner storage in der Datei .gitignore ignoriert. Die Sache ist, dass, wenn Sie composer install auf Ihrem Server ausführen, nicht alle Dateien aus dem Speicherordner erstellt werden, sollten Sie diese prüfen!

In meinem Fall enthielt mein Speicherordner nur den Ordner logs ohne die Ordner app und framework. Sie müssen diese manuell erstellen, damit Sie am Ende diese Struktur haben sollten:

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

Vergessen Sie nicht, den Ordner storage beschreibbar zu machen!

17
paulalexandru

danke @ peder-wessel. Ihre Antwort ist die Ursachenerklärung, aber keine dauerhafte Lösung. Sie funktioniert, bis wir die Hersteller erneut aktualisieren, da die Datei Filesystem.php im Laravel-Herstellerverzeichnis liegt. Eines Tages, wenn wir composer update sind, wird es wieder Probleme geben. :( 

Ich konnte jedoch feststellen, dass dieses Problem verursacht wurde, weil die Sitzung in einer Datei gespeichert wurde. Ich habe das von geändert 

'driver' => 'file',

zu 

'driver' => 'cookie',

in /app/config/session.php

Möglicherweise sollten Laravel-Ersteller dies auch zur Konfiguration hinzufügen, da nicht alle (gemeinsam genutzten) Hostings exklusive Sperrrechte bieten

4
shamanSK

Hatte mit dem Hosting zu tun. Mein Cloud-Service hat keine exklusiven Sperren unterstützt. Ich tauschte

return file_put_contents($path, $contents, $lock ? LOCK_EX : 0);

zu

return file_put_contents($path, $contents, $lock ? LOCK_SH : 0);

in Zeile 74 von Filesystem.php

3
Peder Wessel

Ich hatte Probleme mit der Veröffentlichung meiner Assets aus meinem Paket mit diesem Fehler File_put_contents (): Exklusive Sperren werden für diesen Stream nicht unterstützt

dieses Paket hilft NoLock

0
Hassan Gilak