Non ero troppo entusiasta di cambiare le autorizzazioni della mia cartella in 777. Ecco come ho risolto questo problema.
Innanzitutto, ho modificato l'utente che esegue il server Web sul mio computer locale (eseguo nginx, ma i principi si applicano ovunque):
$> sudo vim /etc/nginx/nginx.conf
user <my_user> #inside nginx.conf
service nginx reload
Successivamente, ho creato un altro index.php
file nella public/
cartella per scoprire chi stava eseguendo la mia versione di php-fpm e dove avrei intenzione di cambiarlo:
<?php
phpinfo();
?>
Ricaricando la pagina, ho scoperto che www-data
era l'utente (nella sezione ambiente). Ho anche scoperto che stavo eseguendo php 7.1. Ho proceduto a cambiare l'utente:
$> 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.
Infine, ho dato le seguenti autorizzazioni alle cartelle:
sudo chmod -R 775 ./storage/
Ora, mi sono assicurato di essere il proprietario delle cartelle usando un semplice:
ls -al
Se imposti gli utenti del server e php-fpm su te stesso e le cartelle sono di proprietà di root, ad esempio, continuerai a riscontrare questo problema. Questo può accadere se hai fatto un sudo laravel new <project>
root. In tal caso, assicurarsi di utilizzare un chown
comando ricorsivo sul progetto per modificare le user:group
impostazioni. Nella maggior parte dei casi predefiniti, www-data
è l'impostazione principale per il server e php, in tal caso si tratta di assicurarsi che la cartella non sia esauritawww-data
portata.
Il mio progetto è installato nella mia home directory. Su Ubuntu 16.04 e Laravel 5.5.