Laravel: Error de permisos al intentar borrar el caché

Al hacer deploys automáticos con Envoy encontré un error, indicaba que no estaba limpiando el cache de la aplicación por problemas de permisos. Acá te muestro como lo solucioné.

Mi usuario para hacer los deploys se llama bender (si, como Bender de Futurama 🤣) por lo que al usar Envoy ejecutaba este comando: php artisan cache:clear . Para solucionar este problema, primero hay que revisar que el usuario bajo el cual se ejecuta PHP (www-data si usas Apache / NGINX) tenga permisos de escritura en el directorio de caché de tu aplicación. Y eso se puede hacer simplemente listando el directorio storage de la siguiente forma:

1bender@server:~/html/project$ ls -l storage/
2total 24
3drwxrwxr-x 3 www-data www-data 4096 Jun 12 2022 app
4drwxrwxr-x 2 www-data www-data 4096 Aug 6 19: 03 debugbar
5drwxrwxr-x 6 www-data www-data 4096 Jan 7 23: 05 framework
6drwxrwxr-x 2 www-data www-data 4096 Aug 6 19: 03 image
7drwxrwxr-x 2 www-data www-data 4096 Jun 12 2022 logs
8drwxrwxr-x 3 www-data www-data 4096 Aug 26 04: 46 media-library

En este caso, el usuario no es el mismo por lo que necesitaba cambiar ese comportamiento y para eso necesitaba la ayuda de los comandos chown y chmod:

1sudo chown -R $USER:www-data storage
2sudo chown -R $USER:www-data bootstrap/cache
3chmod -R 775 storage
4chmod -R 775 bootstrap/cache

Luego hay que verificar que el cambio se haya realizado correctamente y para eso usamos el mismo comando ls -l:

1bender@server:~/html/project$ ls -l storage/
2total 24
3drwxrwxr-x 3 bender www-data 4096 Jun 12 2022 app
4drwxrwxr-x 2 bender www-data 4096 Aug 6 19: 03 debugbar
5drwxrwxr-x 6 bender www-data 4096 Jan 7 23: 05 framework
6drwxrwxr-x 2 bender www-data 4096 Aug 6 19: 03 image
7drwxrwxr-x 2 bender www-data 4096 Jun 12 2022 logs
8drwxrwxr-x 3 bender www-data 4096 Aug 26 04: 46 media-library

Y con eso validamos que el cambio se hizo correctamente y ahora no tendremos problemas. Espero que esto te sirva de ayuda si también tienes algún problema parecido en algún momento.

Angel Cruz's avatar
Autor
Angel Cruz