Excepción de Laravel La transmisión o archivo no se pudo abrir, no se puede abrir el permiso de la transmisión
- 4242
- 279
- Eduardo Tapia
Error:
Una de mis aplicaciones de Laravel comenzó a mostrar el siguiente error después de reiniciar la instancia. El mensaje de error es:
La transmisión o archivo “/var/www/html/storage/logs/laravel.log ”no se pudo abrir: no pudo abrir la transmisión: permiso denegado
Solución:
Este mensaje de error indica que el proceso PHP que está tratando de escribir en el archivo de registro no tiene permisos suficientes para hacerlo. Hay algunas cosas que puede intentar solucionar este problema:
- Verifique la propiedad y los permisos del archivo de registro y sus directorios de padres. El proceso de PHP debe tener permisos de lectura y escritura en el archivo y sus directorios principales. Puedes usar el
'ls -l'
comandar para verificar la propiedad y los permisos del archivo y chmod y el chown para modificarlos si es necesario.chmod -r 777/var/www/html/almacenamiento
- Asegúrese de que el proceso PHP se esté ejecutando como el usuario correcto. Si el proceso PHP se ejecuta como un usuario diferente al propietario del archivo de registro, es posible que no tenga permisos suficientes para escribir en el archivo. Puede verificar con el usuario que el proceso PHP se ejecuta utilizando el comando PS.
- Verifique el registro de errores de PHP para obtener más información. El registro de errores de PHP puede contener información más detallada sobre el error, incluida la línea exacta de código que causó el problema. La ubicación del registro de errores de PHP generalmente se especifica en el PHP.archivo de configuración ini.
- Asegúrese de que el archivo de registro exista y sea escribida por el proceso PHP. Si el archivo de registro no existe, el proceso PHP no podrá escribirle. Puede crear el archivo de registro y establecer los permisos correctos utilizando el
'tocar'
y'Chmod'
comandos.touch/var/www/html/storage/logs/laravel.registro
CHMOD 777/var/www/html/almacenamiento/logs/laravel.registro
- El CentOS y otros usuarios del sistema Redhat pueden tener habilitado Selinux. Puedes configurar el adecuado Selinux política para el
'almacenamiento'
directorio con el siguiente comando.chcon -r -t httpd_sys_rw_content_t/var/www/html/almacenamiento
- Los siguientes comandos lo ayudarán a crear todos los directorios de almacenamiento requeridos relacionados con el almacenamiento.
mkdir -p/rath/to/laravel/storage/app, framework, registros
mkdir -p/rath/to/laravel/storage/framework/caché, sesiones, vistas
Luego, muelga al propietario de Direcoyoires y asigne los privilegios completos a todos:
CHMOD -R 777/ruta/a/laravel/almacenamiento/
Chown -r www-data: www-data/rath/to/laravel/storage/
Asegúrese de cambiar
'/Path/to/Laravel'
con su directorio de aplicaciones de Laravel.
Espero que estas sugerencias ayuden. Avíseme si tiene alguna pregunta o si necesita más ayuda.
- « Cómo establecer el tiempo de espera de la sesión en PHP Una guía para novatos
- Cómo cortar, copiar y pegar en vim »