No estaba demasiado interesado en cambiar los permisos de mi carpeta a 777. Así es como solucioné este problema.
Primero, cambié el usuario que ejecuta el servidor web en mi máquina local (ejecuto nginx, pero los principios se aplican en todas partes):
$> sudo vim /etc/nginx/nginx.conf
user <my_user> #inside nginx.conf
service nginx reload
Después, creé otro index.php
archivo debajo de la public/
carpeta para averiguar quién estaba ejecutando mi versión php-fpm y dónde iría para cambiar eso:
<?php
phpinfo();
?>
Al recargar la página, descubrí que www-data
era el usuario (en la sección de entorno). También descubrí que estaba ejecutando php 7.1. Procedí a cambiar el usuario:
$> 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.
Finalmente, otorgué los siguientes permisos a las carpetas:
sudo chmod -R 775 ./storage/
Ahora, me aseguré de ser el dueño de las carpetas usando un simple:
ls -al
Si configura el servidor y los usuarios de php-fpm para usted y las carpetas son propiedad de root, por ejemplo, seguirá encontrando este problema. Esto puede suceder si hiciste un sudo laravel new <project>
como root. En ese caso, asegúrese de usar un chown
comando recursivo en su proyecto para cambiar la user:group
configuración. En la mayoría de los casos predeterminados, www-data
es la configuración principal para el servidor y php, en ese caso se trata de asegurarse de que la carpeta no esté fuera dewww-data
alcance.
Mi proyecto está configurado en mi directorio de inicio. En Ubuntu 16.04 y Laravel 5.5.