Nie chciałem zmieniać uprawnień do folderów na 777. Oto jak rozwiązałem ten problem.
Najpierw zmieniłem użytkownika, który uruchamia serwer WWW na moim komputerze lokalnym (uruchamiam nginx, ale zasady obowiązują wszędzie):
$> sudo vim /etc/nginx/nginx.conf
user <my_user> #inside nginx.conf
service nginx reload
Następnie utworzyłem kolejny index.php
plik w public/
folderze, aby dowiedzieć się, kto używa mojej wersji php-fpm i gdzie powinienem to zmienić:
<?php
phpinfo();
?>
Przeładowując stronę, dowiedziałem się, że www-data
był to użytkownik (w sekcji środowisko). Dowiedziałem się również, że korzystam z php 7.1. Przystąpiłem do zmiany użytkownika:
$> sudo vim /etc/php/7.0/fpm/pool.d/www.conf
#Look for www-data or the following variables: user, group, listen.user, listen.group.
Na koniec nadałem folderom następujące uprawnienia:
sudo chmod -R 775 ./storage/
Teraz upewniłem się, że jestem właścicielem folderów, używając prostego:
ls -al
Jeśli ustawisz serwer i użytkowników php-fpm na siebie, a foldery są własnością roota, na przykład, będziesz napotykać ten problem. Może się to zdarzyć, jeśli masz uprawnienia sudo laravel new <project>
roota. W takim przypadku upewnij się, że używasz w chown
projekcie polecenia rekurencyjnego, aby zmienić user:group
ustawienia. W większości domyślnych przypadków www-data
jest głównym ustawieniem serwera i php, w tym przypadku należy upewnić się, że folder nie jest pozawww-data
zasięgiem.
Mój projekt jest ustawiony w moim katalogu domowym. W Ubuntu 16.04 i Laravel 5.5.