Mam projekt na Laravel 5 i pracuję z nim w biurze i w domu. Działa dobrze, ale ostatnio w domu przestał działać. Laravel pokaż mi dwa wyjątki ErrorException
file_put_contents(G:\project\storage\framework\views/751d8a0fd8a7d4138c09ceb6a34bb377aa2d6265.php):
failed to open stream: No such file or directory
i
file_put_contents(G:\project\storage\framework/sessions/aIXycR4LIAUBVIqZu0T590paOMIpV8vfZGIroEp0):
failed to open stream: No such file or directory
Poszukuję decyzji problemowych w Google i znajduję informacje o właściwych prawach. Wszystkie rady dotyczą Linuksa, ale pracuję w systemie Windows w biurze i w domu.
Kiedy próbuję wyczyścić pamięć podręczną aplikacji i wyświetlić pamięć podręczną, mówi do mnie rzemieślnik - ... wyczyszczono. Ale dane i widoki pamięci podręcznej są obecne w pamięci.
Jak mogę rozwiązać ten problem?
Z góry dziękuję!
Odpowiedzi:
Najlepszym sposobem rozwiązania tego problemu jest przejście do katalogu
laravel/bootstrap/cache
i usunięcieconfig.php
pliku. lub możesz zmienić jego nazwę, tak jakconfig.php.old
I Twój problem zostanie rozwiązany. Miłego kodowania :-)źródło
php artisan config:cache
odbuduje ścieżki dla aplikacji. Kiedy uruchamiamy aplikację w pudełku wędrowca, ścieżki są inne niż na przykład ścieżki do testów o zmierzchu.php artisan config:cache
Komendę należy zazwyczaj uruchamiać w ramach procedury wdrażania produkcyjnego. Aby rozwiązać Twój problem, sugeruję odtworzenie pliku pamięci podręcznej, aby przyspieszyć ładowanie konfiguracji.Aby to zrobić, uruchom następujące polecenia Artisan w wierszu poleceń
php artisan cache:clear
php artisan config:cache
Możesz programowo wykonać polecenie, dodając następujące elementy do swoich tras:
Route::get('/clear-cache', function() { $exitCode = Artisan::call('cache:clear'); $exitCode = Artisan::call('config:cache'); return 'DONE'; //Return anything });
A następnie wywołaj
clear-cache
trasę z przeglądarki.Mam nadzieję, że to jest pomocne.
źródło
Po kilku badaniach rozumiem - mam bardzo podobne, ale różne lokalizacje projektu głównego i jego pamięć podręczną
/bootstrap/cache
. Po uruchomieniu projektu czyszczenia pamięci podręcznej.źródło
Właściwie napotkałem ten problem, kiedy przeniosłem projekt z serwera na lokalny.
w
cztery podstawowe foldery to wymagana pamięć podręczna, sesje, testy, widoki
W moim przypadku brakowało sesji może być w gitignore.
Więc ręcznie utworzyłem folder sesji i odświeżyłem przeglądarkę i działało.
Więc każdy z brakujących folderów, jeśli usuniemy ten problem, można rozwiązać.
źródło
Ten typ problemu zwykle występuje podczas migracji jednego serwera na inny, jednego folderu do drugiego. Laravel zachowuje pamięć podręczną i konfigurację (nazwę pliku), gdy folder jest inny, wtedy pojawia się ten problem.
Rozwiązanie Uruchom następujące polecenie:
https://laravel.com/docs/5.6/configuration#configuration-caching
źródło
Apache + WSL w systemie Windows
To głupi błąd i inna odpowiedź w porównaniu do innych, ale dodam to, ponieważ mi się to przydarzyło.
Jeśli używasz WSL (linux bash w systemie Windows) do zarządzania aplikacją laravel, podczas korzystania z apache systemu Windows do uruchamiania serwera, uruchomienie dowolnych poleceń buforowania w wsl będzie przechowywać ścieżkę linuxa zamiast ścieżki systemu Windows do sesji i innych folderów .
Rozwiązanie
Po prostu uruchom polecenia czyszczenia pamięci podręcznej w PowerShell, a nie w WSL.
To mi wystarczyło.
źródło
php artisan config:cache
polecenie w systemie Windows, mój Linux nie ładował już stron internetowych aplikacji. Przejście do folderu bootstrap / cache i usunięcie tam pliku config.php rozwiązało problem.Wypróbuj te polecenia, które były przydatne w przypadku tych błędów
ścieżka \ projekt \ magazyn \ framework \ widoki ...
ścieżka \ projekt \ magazyn \ framework / sesje ...
źródło
W przypadku hostingu współdzielonego, gdy nie masz dostępu do wiersza poleceń, po prostu przejdź do folderu laravel / bootstrap / cache i usuń (lub zmień nazwę) config.php i gotowe!
źródło
Najlepszym sposobem rozwiązania tego problemu jest przejście do katalogu
laravel/bootstrap/cache
i usunięcie wszystkich plików z pamięci podręcznej.Aby to zrobić, uruchom następujące polecenia Artisan w wierszu poleceń
1. php artisan config:clear
2. php artisan cache:clear
3. php artisan config:cache
W swoim panelu lub serwerze możesz wykonywać polecenia, dodając do swoich tras:
Route::get('/clear-cache', function() { $run = Artisan::call('config:clear'); $run = Artisan::call('cache:clear'); $run = Artisan::call('config:cache'); return 'FINISHED'; });
A następnie wywołaj
www.yourdomain.com/clear-cache
trasę z przeglądarki.źródło
zmiana nazwy /bootstrap/cache/config.php na config.php.old nie działa dla mnie ani czyszczenie pamięci podręcznej poleceniami artisan
I z jakiegoś dziwnego powodu nie mogę zmienić uprawnień właściciela do katalogów, więc moje rozwiązanie uruchamiało moje IDE (Visual Studio Code) jako administrator i wszystko działa.
Mój projekt znajduje się w ścieżce F: / innego dysku.
źródło
Być może jest problem z Twoim plikiem kompozytora. Możesz spróbować:
aktualizacja composer zawsze ponownie generuje plik composer.lock i instaluje najnowsze wersje dostępnych pakietów opartych na pliku composer.json
Composer dump-autoload niczego nie pobierze. Po prostu odtwarza listę wszystkich klas, które muszą być zawarte w projekcie (autoload_classmap.php). Idealny, gdy masz nową klasę w swoim projekcie. Idealnie byłoby, gdybyś wykonał plik Composer dump-autoload -o, aby przyspieszyć ładowanie stron internetowych. Jedynym powodem, dla którego nie jest to ustawienie domyślne, jest to, że jego wygenerowanie zajmuje nieco więcej czasu (ale jest tylko nieznacznie zauważalne)
źródło
źródło
Przyczyną tego problemu są pliki pamięci podręcznej w localhost. W związku z tym próbowałem kilku rzeczy w następujący sposób, aby wyczyścić pamięć podręczną mojego projektu, ale za każdym razem mi się nie udało.
Więc znalazłem rozwiązanie tego problemu po tym, jak każdy z powyższych kroków zawiódł i zadziałało idealnie. Usunąłem plik cache.php w formacie host_route bootstrap / cache / katalogu.
Myślę, że ta odpowiedź pomoże w twoim problemie.
źródło
W moim przypadku nie było to nic, co można naprawić poleceniami php artisan. Problem dotyczył uprawnień do folderu / storage. Błąd nie wyjaśniał tego jasno.
źródło
Jeśli używasz laravela wewnątrz dockera, uzyskaj dostęp do jego systemu plików
Następnie przejdź do katalogu głównego projektów laravel. Upewnij się, że masz w folderze magazynu / struktury :
Powinny być zarówno czytelne, jak i możliwe do zapisania.
źródło
Rozwiązałem ten problem, tworząc
storage\framework\sessions
folder.źródło
Miałem podobne problemy z powodu .gitignore dla
/storage
folderu na pierwszej maszynie, potem sklonowane repozytorium na drugiej maszynie, a laravel był wersją zapisującą pamięć podręczną sesjiTak więc ręczne utworzenie folderu
/storage/sessions
może być rozwiązaniem ...źródło
rozwiązaniem, które działało dla mnie, jest po prostu służyć aplikacji jako administrator, jeśli tak jest
mac
lublinux
użyjsudo php artisan serve
CMD
systemie Windows spróbuj otworzyć jako plik,adminstrator
a następnie przejdź do katalogu projektu i uruchomphp artisan serve
źródło
Wyczyszczenie zawartości
storage/framework/cache
pomogło mi. Nic innego nie działało ...źródło
Użyłem Laravel 8, to jest moje rozwiązanie
Idź: dane
katalogu uprawnień do przechowywania / struktury / pamięci podręcznej / zestawu danych to 777
U mnie to zadziałało
źródło
To zrobiło dla mnie magię. chmod -Rf 0777 przechowywania
źródło
Jeśli nic nie działa, spróbuj wykonać następujące czynności w środowisku produkcyjnym
1-
2-
3-
4-
5-
6-
Pracuje dla mnie
źródło