Ich war nicht besonders daran interessiert, meine Ordnerberechtigungen auf 777 zu ändern. So habe ich dieses Problem behoben.
Zuerst habe ich den Benutzer geändert, der den Webserver auf meinem lokalen Computer ausführt (ich führe nginx aus, aber die Prinzipien gelten überall):
$> sudo vim /etc/nginx/nginx.conf
user <my_user> #inside nginx.conf
service nginx reload
Danach habe ich eine weitere index.php
Datei unter dem public/
Ordner erstellt, um herauszufinden, wer meine PHP-Fpm-Version ausführt und wo ich das ändern würde:
<?php
phpinfo();
?>
Beim erneuten Laden der Seite stellte ich fest, dass www-data
es sich um den Benutzer handelte (im Abschnitt "Umgebung"). Ich fand auch heraus, dass ich PHP 7.1 laufen ließ. Ich habe den Benutzer geändert:
$> 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.
Schließlich habe ich Ordnern die folgenden Berechtigungen erteilt:
sudo chmod -R 775 ./storage/
Jetzt stellte ich sicher, dass ich der Eigentümer der Ordner war, indem ich Folgendes verwendete:
ls -al
Wenn Sie die Server- und PHP-Fpm-Benutzer auf sich selbst einstellen und die Ordner beispielsweise Root gehören, tritt dieses Problem weiterhin auf. Dies kann passieren, wenn Sie eine sudo laravel new <project>
als root ausgeführt haben. Stellen Sie in diesem Fall sicher, dass Sie einen rekursiven chown
Befehl für Ihr Projekt verwenden, um die user:group
Einstellungen zu ändern . In den meisten Standardfällen www-data
ist dies die Haupteinstellung für den Server und PHP. In diesem Fall muss sichergestellt werden, dass der Ordner nicht leer istwww-data
Reichweite liegt.
Mein Projekt wird in meinem Home-Verzeichnis eingerichtet. Unter Ubuntu 16.04 und Laravel 5.5.