Muchas veces cuando ponemos en producción una tienda online que hemos desarrollado en local en Magento 2 (o cuando migramos la tienda de un hosting a otro), puede ocurrir que los permisos de los ficheros y directorios cambien, provocando que nuestro ecommerce deje de funcionar. Para ello, deberemos restaurar los permisos de los archivos teniendo en cuenta que:
- El usuario con el que se ejecutan los procesos de la tienda (es decir, el usuario propietario de los archivos/directorios de nuestra tienda) debe ser distinto al usuario web del servidor.
- El usuario del servidor web debe tener acceso de escritura a los ficheros y directorios:
- var
- app/etc
- pub
- generated
- El usuario propietario de los archivos y directorios debe tener control total (lectura/escritura/ejecución) sobre los mismos.
Además, según encontramos en la documentación de Magento, deberemos reasignar los permisos mediante un acceso ssh a nuestro servidor y utilizando las siguientes instrucciones en la carpeta raíz del directorio de instalación de nuestra tienda (por ejemplo, supongamos que la tienda está en la carpeta magento en el servidor):
cd magento
find . -type f -exec chmod 644 {} \; // 644 permisos para ficheros
find . -type d -exec chmod 755 {} \; // 755 permisos para directorios
find ./var -type d -exec chmod 777 {} \; // 777 permission for var folder
find ./pub/media -type d -exec chmod 777 {} \;
find ./pub/static -type d -exec chmod 777 {} \;
chmod 777 ./app/etc
chmod 644 ./app/etc/*.xml
chown -R : .
chmod u+x bin/magento
Una vez reasignados los permisos a los ficheros y directorios nuestra tienda online debería volver a funcionar.
Foto de cabecera por Clark Young en Unsplash