Solucionar error de permisos en PrestaShop con DirectAdmin
¿Por qué aparecen errores de permisos en PrestaShop con DirectAdmin?
Si estás leyendo esto, probablemente te has encontrado con un mensaje molesto en tu tienda online. Puede ser algo como "No se puede escribir en el archivo de configuración", "Error al subir imagen", o incluso una pantalla en blanco. No te preocupes, es un problema más común de lo que parece y, sobre todo, tiene solución.
Los errores de permisos en PrestaShop suelen aparecer cuando los archivos y carpetas de tu tienda no tienen los niveles de acceso correctos. En un servidor con panel de control DirectAdmin, esto ocurre con frecuencia después de migrar la tienda, restaurar una copia de seguridad, o al instalar un módulo que no respeta la estructura de archivos.
La buena noticia es que puedes solucionarlo tú mismo siguiendo esta guía paso a paso, aunque no tengas experiencia técnica. Vamos a explicarte qué son los permisos, por qué fallan y cómo corregirlos de forma segura y definitiva.
¿Qué son los permisos de archivos y carpetas?
Antes de entrar en materia, es importante que entiendas qué significa esto. En un servidor Linux (que es el que usa DirectAdmin), cada archivo y carpeta tiene un "dueño" y un "grupo". Además, tiene tres tipos de permisos:
- Lectura (r): Permite ver el contenido del archivo.
- Escritura (w): Permite modificar el archivo o crear archivos dentro de una carpeta.
- Ejecución (x): Permite ejecutar el archivo (en el caso de scripts).
Estos permisos se representan con números. El más común es el 755 para carpetas y 644 para archivos. Pero PrestaShop necesita, en ocasiones, permisos especiales en carpetas concretas para poder escribir archivos de caché, logs, o imágenes subidas por tus clientes.
Cuando esos permisos están mal configurados, PrestaShop no puede escribir donde necesita y te muestra el famoso error permisos prestashop. Es como si tuvieras una puerta cerrada con llave y no tuvieras la llave para abrirla.
Requisitos previos antes de empezar
Para seguir esta guía necesitas tener acceso a tu panel de DirectAdmin. Si no lo tienes, contacta con tu proveedor de hosting para que te lo facilite. También es recomendable que hagas una copia de seguridad de tu tienda antes de modificar nada, por si acaso.
[WARNING] No modifiques los permisos de todos los archivos de tu tienda de forma indiscriminada. Hacerlo puede abrir brechas de seguridad o romper la tienda. Sigue las instrucciones exactamente como te las mostramos.
Solucionar error de permisos en PrestaShop con DirectAdmin: Paso a paso
Vamos a dividir el proceso en dos partes: primero, corregir los permisos de forma general, y segundo, ajustar las carpetas específicas que PrestaShop necesita para funcionar.
Paso 1: Accede a tu panel de DirectAdmin
Abre tu navegador y escribe la URL de tu panel. Normalmente es algo como https://tudominio.com:2222 o https://tuip:2222. Introduce tu usuario y contraseña.
Una vez dentro, busca la sección "Administrador de archivos" o "File Manager". En DirectAdmin puede estar en el menú lateral o en la sección de "Herramientas". Haz clic para abrirlo.
Paso 2: Navega hasta la raíz de tu tienda PrestaShop
Dentro del Administrador de archivos, verás una lista de carpetas. Busca la carpeta public_html o domains/tudominio.com/public_html. Esa es la raíz de tu sitio web. Si PrestaShop está instalado en una subcarpeta (por ejemplo, public_html/tienda), navega hasta esa carpeta.
Paso 3: Corrige los permisos de forma masiva (carpetas y archivos)
Esta es la parte más importante. Vamos a establecer los permisos base correctos para todo el árbol de directorios de PrestaShop.
- Selecciona todos los archivos y carpetas: En la parte superior del administrador de archivos, hay una casilla de verificación para seleccionar todo. Márcala.
- Busca el botón "Cambiar permisos": Puede aparecer como un icono de candado o en el menú desplegable "Acciones". Haz clic en él.
- Configura los permisos:
- Para carpetas (directorios), introduce el valor 755.
- Para archivos, introduce el valor 644.
- Marca la opción "Recursivo" si está disponible. Esto aplicará los permisos a todas las subcarpetas y archivos dentro de la selección. Si no ves esa opción, tendrás que hacerlo carpeta por carpeta, pero la mayoría de los administradores de archivos de DirectAdmin la incluyen.
- Haz clic en "Guardar" o "Aplicar".
Este paso resuelve el 80% de los errores de permisos en PrestaShop, especialmente los relacionados con la caché y la configuración general.
Paso 4: Ajusta los permisos de las carpetas especiales de PrestaShop
PrestaShop necesita que algunas carpetas sean escribibles (permiso 755 o incluso 775 en algunos servidores) para funcionar correctamente. Estas son las más importantes:
/cache/log/img/mails/modules/themes/var(en versiones modernas de PrestaShop 1.7 y 8)/appy/config(en versiones antiguas)
Para cada una de estas carpetas, haz lo siguiente:
- Entra en la carpeta (por ejemplo,
cache). - Selecciona todo el contenido dentro de ella.
- Cambia los permisos a 755 para carpetas y 644 para archivos, de forma recursiva.
- Sal de la carpeta y repite con las demás.
[TIP] En PrestaShop 1.7 y 8, la carpeta /var/cache y /var/logs son las más críticas. Asegúrate de que tengan permisos de escritura.
Paso 5: Revisa el archivo de configuración parameters.php o settings.inc.php
En versiones antiguas de PrestaShop (1.6 y anteriores), el archivo config/settings.inc.php debe tener permisos 644. En versiones modernas (1.7 y 8), el archivo app/config/parameters.php también debe tener permisos 644.
Si este archivo tiene permisos demasiado abiertos (por ejemplo, 777), PrestaShop mostrará un error de seguridad. Si tiene permisos demasiado restrictivos (por ejemplo, 444), no podrá escribir y mostrará el error de permisos.
Para corregirlo:
- Localiza el archivo correspondiente en tu instalación.
- Haz clic derecho sobre él y selecciona "Cambiar permisos".
- Introduce el valor 644 y guarda.
Paso 6: Limpia la caché de PrestaShop
Después de cambiar los permisos, es muy recomendable limpiar la caché de PrestaShop. A veces, aunque los permisos sean correctos, la caché guarda datos corruptos que siguen mostrando errores.
Puedes hacerlo de dos maneras:
- Desde el panel de administración de PrestaShop: Ve a Parámetros avanzados > Rendimiento y haz clic en "Vaciar la caché".
- De forma manual: Borra el contenido de las carpetas
/var/cachey/var/logs(en PrestaShop 1.7+) o/cachey/log(en versiones antiguas). No borres las carpetas en sí, solo su contenido.
[WARNING] Si borras la caché manualmente, asegúrate de no borrar el archivo .htaccess que pueda haber dentro. Simplemente selecciona los archivos y elimínalos, pero no la carpeta.
¿Qué hago si después de esto sigue el error?
Si has seguido todos los pasos y el error permisos prestashop persiste, puede deberse a otras causas. Vamos a ver las más comunes y cómo solucionarlas.
El problema es un módulo o tema
Algunos módulos o temas de terceros crean sus propias carpetas con permisos incorrectos. Para verificarlo, ve a la carpeta /modules y busca el módulo que esté causando problemas (normalmente el que instalaste o actualizaste recientemente). Cambia sus permisos a 755 para carpetas y 644 para archivos.
El problema es el propietario de los archivos (ownership)
A veces, los permisos son correctos pero el "dueño" de los archivos no es el usuario correcto del servidor. En DirectAdmin, los archivos deben pertenecer al usuario de tu cuenta de hosting. Si migraste la tienda desde otro servidor, es posible que los archivos tengan otro propietario.
Para solucionarlo, necesitas acceso a la línea de comandos (SSH). Si no sabes qué es, contacta con tu soporte y pídeles que ejecuten:
chown -R usuario:usuario /home/usuario/domains/tudominio.com/public_html
Sustituye "usuario" por tu nombre de usuario de DirectAdmin.
El problema es el open_basedir o el Modo seguro
En algunos servidores compartidos, PHP tiene restricciones de seguridad que impiden que PrestaShop escriba en ciertas carpetas. Esto no se soluciona con permisos, sino con la configuración de PHP.
En DirectAdmin, ve a "Configuración de PHP" o "PHP Settings" y asegúrate de que open_basedir esté desactivado o incluya la ruta completa de tu carpeta public_html.
El problema es la caché del servidor
A veces, el servidor guarda una caché de los permisos antiguos. Espera unos minutos o reinicia el servicio de PHP desde DirectAdmin (suele estar en Administración de servicios).
Errores comunes y sus soluciones rápidas
Aquí tienes una pequeña FAQ con los errores más habituales:
"No se puede escribir en el archivo cache/class_index.php"
Este es uno de los errores de permisos en PrestaShop más típicos. La solución es dar permisos 755 a la carpeta /cache y 644 al archivo class_index.php. Si ya lo has hecho, borra el archivo class_index.php y PrestaShop lo regenerará automáticamente.
"Error al subir una imagen de producto"
Las imágenes se guardan en /img/p. Asegúrate de que esta carpeta y todas sus subcarpetas tengan permisos 755. Si el error persiste, borra el contenido de /img/tmp (si existe).
"La tienda muestra un error 500 después de cambiar permisos"
Has puesto permisos demasiado restrictivos en algún archivo crítico. Vuelve a poner todo a 755 y 644 como indicamos en el paso 3. Si no recuerdas qué cambiaste, restaura la copia de seguridad.
"No puedo acceder al panel de administración"
Esto suele pasar si has cambiado los permisos de la carpeta /admin o del archivo index.php dentro de ella. Pon la carpeta /admin a 755 y el archivo index.php a 644.
Consejos finales para evitar futuros errores
- No instales módulos de fuentes no oficiales: Suelen traer permisos incorrectos.
- Mantén PrestaShop actualizado: Las versiones nuevas corrigen problemas de permisos.
- Haz copias de seguridad periódicas: Así podrás restaurar si algo sale mal.
- Si usas Syspanel (antes conocido como HestiaCP) en algún otro servidor, recuerda que el puerto de acceso es el 2106 y los pasos son muy similares, pero el administrador de archivos puede variar ligeramente.
[INFO] Si después de todo esto sigues teniendo problemas, revisa los logs de error de PrestaShop en la carpeta /var/logs. Ahí encontrarás la causa exacta. También puedes contactar con el soporte de tu hosting, ya que a veces el problema está en la configuración del servidor y no en tu tienda.
Resumen rápido
- Accede a DirectAdmin y abre el Administrador de archivos.
- Selecciona todo en
public_htmly cambia permisos a 755 (carpetas) y 644 (archivos) de forma recursiva. - Ajusta las carpetas especiales:
cache,log,img,modules,themes,var. - Limpia la caché de PrestaShop.
- Verifica el propietario de los archivos si migraste la tienda.
- Revisa la configuración de PHP si el problema persiste.
Con estos pasos, el error permisos prestashop directadmin debería desaparecer por completo. Recuerda que la paciencia es clave y que, si te atascas, siempre puedes pedir ayuda a tu proveedor de hosting. Ellos están para eso.
Esperamos que esta guía te haya sido de utilidad. Si tienes alguna duda, déjanos un comentario y te ayudaremos a resolverla. ¡Buena suerte con tu tienda!
