Laravel 4: Error al abrir la secuencia: permiso denegado

Tengo problemas para configurar Laravel 4. Tengo este error al abrir la página de índice:

file_put_contents (/Users/laravel/app/storage/meta/services.json) [function.file-put-contents]:
no se pudo abrir la transmisión: permiso denegado.

¿Que me estoy perdiendo aqui?

El usuario del servidor web debe poder escribir en el directorio de storage .

Creo que chmod -777 es una mala práctica.

Para resolver el problema de permisos en Laravel, he hecho esto (con usuario root):

cd app/

chown -R www-data:www-data storage

cd storage/

find . -type d -exec chmod 775 {} \; && find . -type f -exec chmod 664 {} \;

Y siempre en el directorio de aplicaciones / almacenamiento:

chown your_user:user_group .gitignore cache/.gitignore logs/.gitignore meta/.gitignore sessions/.gitignore views/.gitignore

Ahora, salga del usuario raíz, y está bien.

EDITAR: esto fue para Laravel4. Esto no funciona para Laravel5 debido a una estructura diferente.

Es mejor que no cambie los permisos, simplemente debe cambiar el owner:group de la carpeta de almacenamiento por el del owner:group de apache usando chown , esto es más complicado pero es más seguro y se acostumbrará a esto pronto, puedes encontrar esto en el httpd.conf

MAMP:

 /Applications/MAMP/conf/apache/httpd.conf 

XAMMP:

 /Applications/XAMPP/xamppfiles/etc/httpd.conf 

Abra el httpd.conf con su editor preferido y luego busque User/Group . Después de buscar, verá estas líneas debajo de la línea resaltada que buscó:

 User someuser Group somegroup 

Una vez que ya conoce el usuario y el grupo, cd a su directorio laravel, haga lo siguiente:

 chown -R someuser:somegroup app/storage 

PD: Si obtienes algún error de permiso al hacer chown , prueba esto:

 sudo chown -R someuser:somegroup app/storage 

Luego le pedirá su contraseña, entonces insértela y luego haga.

Acabo de toparme con este problema en centos 7. El bloqueador no tenía permisos de carpeta, sino que era una política de selinux que bloqueaba nginx / php para acceder a / var / www. Por lo tanto, si lo anterior no funciona, intente deshabilitar selinux como prueba para ver si puede volver a ejecutar el compositor sin ningún problema de permiso.

En mi caso, este error fue lanzado:

fopen (php: // stdout): error al abrir la secuencia: la operación falló

Estoy usando un host virtual en Wamp. por lo tanto, agregué esta línea a mi bloque -> en el archivo httpd-vhosts.conf :

 Require all granted 

y mi bloque es:

  ServerName laravel DocumentRoot d:/wamp/www  Options Indexes FollowSymLinks MultiViews AllowOverride All Require all granted   

entonces problema resuelto!

Si está utilizando Apache en Ubuntu, el usuario del servidor web debe poder escribir las carpetas de almacenamiento y de carga / caché.

 sudo chgrp -R www-data storage bootstrap/cache sudo chmod -R ug+rwx storage bootstrap/cache 

Esto permitirá permisos de escritura a estas carpetas para los usuarios del servidor web.