¿Cómo solucionar el error: no se pudo abrir laravel.log?
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 storage
no ayudó en absoluto.
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)'
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
Para solucionar este problema, debe cambiar la propiedad del directorio al usuario Unix que utiliza el servidor web.
- Sal de la máquina virtual
- Usando la consola, vaya a su carpeta sincronizada (vagrant)
- sudo chown -R $USUARIO:www-almacenamiento de datos
- 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"]