Wyjątek laravela Nie można otworzyć strumienia lub pliku, nie udało się otworzyć odmowy uprawnienia strumienia
- 3682
- 267
- Laura Zygmunt
Błąd:
Jedna z moich aplikacji Laravel zaczęła pokazywać następujący błąd po ponownym uruchomieniu instancji. Komunikat o błędzie to:
Strumień lub plik „/var/www/html/storage/logs/laravel.Log ”nie można otworzyć: nie udało się otworzyć strumienia: odmowa uprawnienia
Rozwiązanie:
Ten komunikat o błędzie wskazuje, że proces PHP, który próbuje napisać do pliku dziennika, nie ma do tego wystarczających uprawnień. Jest kilka rzeczy, które możesz spróbować rozwiązać ten problem:
- Sprawdź własność i uprawnienia pliku dziennika i jego katalogów nadrzędnych. Proces PHP musi mieć uprawnienia do odczytu i zapisu w pliku i jego katalogach nadrzędnych. Możesz użyć
„ls -l”
polecenie sprawdzania własności i uprawnień pliku oraz chmod i chown, aby je zmodyfikować w razie potrzeby.CHMOD -R 777/var/www/html/pamięć
- Upewnij się, że proces PHP działa jako właściwy użytkownik. Jeśli proces PHP działa jako inny użytkownik niż właściciel pliku dziennika, może nie mieć wystarczających uprawnień do zapisu do pliku. Możesz sprawdzić u użytkownika, że proces PHP działa za pomocą polecenia PS.
- Aby uzyskać więcej informacji, sprawdź dziennik błędów PHP. Dziennik błędów PHP może zawierać bardziej szczegółowe informacje na temat błędu, w tym dokładną wiersz kodu, który spowodował problem. Lokalizacja dziennika błędów PHP jest zwykle określona w PHP.plik konfiguracyjny INI.
- Upewnij się, że plik dziennika istnieje i jest zapisany przez proces PHP. Jeśli plik dziennika nie istnieje, proces PHP nie będzie mógł do niego napisać. Możesz utworzyć plik dziennika i ustawić prawidłowe uprawnienia za pomocą
'dotykać'
I„Chmod”
polecenia.Touch/var/www/html/storage/logs/laravel.dziennik
CHMOD 777/var/www/html/Storage/Logs/Laravel.dziennik
- Centos i inni użytkownicy systemu Redhat mogą mieć włączenie Selinux. Możesz ustawić właściwe Selinux Polityka dla
'składowanie'
katalog z następującym poleceniem.CHCON -r -t httpd_sys_rw_content_t/var/www/html/pamięć
- Poniższe polecenia pomogą Ci utworzyć wszystkie wymagane katalogi związane z przechowywaniem.
mkdir -p/ścieżka/do/laravel/storage/app, framework, logs
mkdir -p/ścieżka/do/laravel/storage/framework/pamięć podręczna, sesje, widoki
Następnie zdobądź właściciela DirecToires i przypisz pełne przywileje wszystkim:
CHMOD -R 777/ścieżka/do/laravel/magazyn/
chown -r www-data: www-data/ścieżka/do/laravel/magazyn/
Pamiętaj, aby zmienić
'/ścieżka/do/laravel' '
z katalogiem aplikacji Laravel.
Mam nadzieję, że te sugestie pomogą. Daj mi znać, jeśli masz jakieś pytania lub potrzebujesz dalszej pomocy.
- « Jak ustawić limit czasu sesji w PHP Przewodnik dla początkujących
- Jak wyciąć, kopiować i wkleić w VIM »