Algunas de las preguntas habituales de nuestro foro suelen radicar en un problema con la configuración de los permisos de los ficheros. En concreto suelen preguntarnos mucho por el error JFolder::create: Could not create directory. Con este tutorial quiero enseñaros varios métodos para realizar el cambio de los permisos en Joomla, así como cuales son los permisos ideales para los ficheros y carpetas.
La gran mayoría de los proveedores de hosting que son compatibles con Joomla basan su arquitectura de servicios web en un sistema Linux -Ubuntu, Debian, Red Hat, CentOS, Suse, etc-. No voy a entrar a fondo en el funcionamiento del sistema de permisos, pero te dejo un enlace por si necesitas amplicar tus conocimientos sobre ellos.
Cuando alguien tiene problemas con los permisos de los archivos y directorios en Joomla siempre hay a alguno que se le ocurre establecer todos los permisos a 777 (yo pertenecí a ese grupo). Si nuestros permisos estuviesen establecidos a 777 y hackearan el sitio web de otro usuario que se encuentra alojado en el mismo servidor el asaltante podría facilmente editar el contenido de nuestro directorio. Por eso te recomiendo que revises la configuración de los permisos de tus sitios Joomla y verifiques que tienen los permisos adecuados.
Esta configuración ideal que te comento es la siguiente:
Directorios: 755
- Propietario: Leer, escribir y ejecutar
- Grupos: Leer y escribir
- Otros: Leer y ejecutar
Archivos: 644
- Propietario: Leer y escribir
- Grupos: Leer
- Otros: Leer
Archivo configuration.php: 444
- Propietario: Leer
- Grupos: Leer
- Otros: Leer
Hay muchos métodos posibles para realizar el cambio de permisos de los archivos y carpetas de Joomla, algunos de ellos son prácticamente iguales pero realizados con herramientas distintas. A continuación te cuento alguno de estos métodos para que escojas el mecanismo que más te guste.
Contactar con nuestro proveedor de hosting
En el caso de tener contratado un servicio de hosting se puede abrir un ticket al soporte técnico para comentarles el problema y solicitarles que lo solucionen. Este es el método más comodo para aquellos que no estáis familiarizados con el cambio de permisos, pero tiene como inconveniente el tiempo de espera hasta la resolución de la incidencia abierta.
Cambiar los permisos desde el FTP
Para realizar el cambio de los permisos debes conectarte a la cuenta FTP de tu servicio de hosting con un cliente FTP. Para este ejemplo nosotros hemos utilizado Filezilla que es un cliente FTP gratuito y multiplataforma.
Si nos situamos en una carpeta y pulsamos el botón derecho del ratón nos aparecerá la opción "Permisos de archivo..."
Al hacer clic se nos abrirá una ventana donde podremos establecer los permisos que hemos comentado anteriormente. Debéis fijaros en las opciones que aparecen al final de esta ventana que os permitirán aplicar los permisos a todos los subdirectorios de forma que se modifiquen los permisos solo de archivos, solo de carpetas o de ambos a la vez.
Modificar los permisos desde Extplorer
Si tienes la extensión Extplorer instalada en tu sitio Joomla podrás navegar por toda la carpeta de directorios y modificar los permisos de las carpetas y archivos afectados. El proceso es similar al explicado en el apartado anterior
Cambio de permisos desde CPanel
El proceso es muy similar a los dos anteriores descritos. Si nuestro hosting tiene el panel de administración CPanel podemos utilizar el Administrador de archivos para realizar los cambios.
Seleccionamos la carpeta adecuada y pulsamos sobre "Cambiar permisos" para establecer los permisos comentados
Modificando los permisos desde la línea de comandos
Este último caso solo podremos hacerlo si tenemos acceso a una consola en el servidor. El proceso consiste en lanzar dos comandos, el primero nos va a permitir la modificación de los permisos para las carpetas, mientras que el segundo ahora lo mismo pero con los archivos. Este comando se encargará de modificar también el permiso de las subcarpetas hijas del directorio afectado.
find ./directorio -type d -exec chmod 755 {} \;
find ./directorio -type f -name ‘*.php’ -exec chmod 644 {} \;
Comentarios
Gracias y un saludo.