¿Cómo solucionar el error: no se pudo abrir laravel.log?

Resuelto frankelot asked hace 54 años • 32 respuestas

De hecho, soy bastante nuevo en laravel y estoy intentando crear mi primer proyecto. por alguna razón sigo recibiendo este error (ni siquiera he empezado a codificar todavía)

Error in exception handler: The stream or file "/var/www/laravel/app/storage/logs/laravel.log" could not be opened: failed to open stream: Permission denied in /var/www/laravel/bootstrap/compiled.php:8423

Leí que esto tiene algo que ver con los permisos pero chmod -R 775 storageno ayudó en absoluto.

Permisos

frankelot avatar Jan 01 '70 08:01 frankelot
Aceptado

Nunca establezca un directorio en 777 . debe cambiar la propiedad del directorio. así que configure su usuario actual con el que inició sesión como propietario y el usuario del servidor web (www-data, apache, ...) como grupo. Puedes probar esto:

sudo chown -R $USER:www-data storage
sudo chown -R $USER:www-data bootstrap/cache

luego, para configurar el permiso del directorio, intente esto:

chmod -R 775 storage
chmod -R 775 bootstrap/cache

Actualizar:

El usuario y el grupo del servidor web dependen de su servidor web y su sistema operativo. Para averiguar cuál es el usuario y grupo de su servidor web, utilice los siguientes comandos. para uso de nginx:

ps aux|grep nginx|grep -v grep

para uso de apache:

ps aux | egrep '(apache|httpd)'

Hamid Parchami avatar Aug 14 '2017 11:08 Hamid Parchami

Nunca use 777 para directorios en su servidor en vivo, pero en su propia máquina, a veces necesitamos hacer más de 775, porque

chmod -R 775 storage

Medio

7 - Owner can write
7 - Group can write
5 - Others cannot write!

Si su servidor web no se ejecuta como Vagrant, no podrá escribir en él, por lo que tiene 2 opciones:

chmod -R 777 storage

o cambie el grupo al usuario de su servidor web, suponiendo que sea www-data:

chown -R vagrant:www-data storage
Antonio Carlos Ribeiro avatar May 01 '2014 17:05 Antonio Carlos Ribeiro

Para solucionar este problema, debe cambiar la propiedad del directorio al usuario Unix que utiliza el servidor web.

  1. Sal de la máquina virtual
  2. Usando la consola, vaya a su carpeta sincronizada (vagrant)
  3. sudo chown -R $USUARIO:www-almacenamiento de datos
  4. chmod -R 775 almacenamiento

Aunque creé el proyecto dentro de la VM usando el usuario de la VM, la carpeta pertenecía al usuario en la computadora real; entonces, al intentar

Ahora funciona.

Gracias a todos aquellos que me ayudaron a resolver esto.

EDITAR:

En realidad, todavía no funcionaba, todavía me daba un problema de "permiso denegado".

Esto es lo que hice, modifiqué mi Vagrantfile así:

config.vm.synced_folder "./app","/var/www/", create:true,
:owner => "vagrant",
:group => "www-data",
:mount_options => ["dmode=775","fmode=664"]
frankelot avatar May 01 '2014 19:05 frankelot