Solucionar problemas de permisos de archivos en PrestaShop (DirectAdmin)
¿Por qué aparecen errores de permisos en PrestaShop y DirectAdmin?
Si estás leyendo esto, probablemente te has encontrado con un mensaje de error como "No se puede escribir en el archivo", "Error 500" o una pantalla en blanco en tu tienda PrestaShop. No te preocupes, es uno de los problemas más comunes al gestionar un hosting con DirectAdmin, y la buena noticia es que tiene solución.
Los permisos PrestaShop DirectAdmin son un sistema de seguridad que controla quién puede leer, escribir o ejecutar cada archivo y carpeta de tu instalación. Si estos permisos están mal configurados, tu tienda puede volverse inaccesible o, peor aún, vulnerable a ataques.
En esta guía extensa, te voy a explicar paso a paso, con un lenguaje muy sencillo, cómo diagnosticar y solucionar cualquier problema de permisos. No necesitas ser un experto en Linux ni en programación; solo sigue las instrucciones y en pocos minutos tu tienda volverá a funcionar.
Entendiendo los permisos de archivos: lo básico
Antes de lanzarnos a los comandos y a las herramientas de DirectAdmin, es fundamental que entiendas qué son esos números mágicos que ves en el panel (como 755, 644, 775). No te asustes, es más fácil de lo que parece.
En el mundo de los servidores, cada archivo y carpeta tiene tres tipos de permisos:
- Lectura (r): Permite ver el contenido.
- Escritura (w): Permite modificar o borrar el contenido.
- Ejecución (x): Permite ejecutar el archivo (si es un script).
Estos permisos se asignan a tres grupos de usuarios:
- Propietario (u): Normalmente, el usuario de tu cuenta de hosting.
- Grupo (g): Un conjunto de usuarios que comparten permisos.
- Otros (o): El resto del mundo, incluidos los visitantes de tu tienda.
Para simplificar, se usan números:
- 4 = lectura (r)
- 2 = escritura (w)
- 1 = ejecución (x)
Se suman para cada grupo. Por ejemplo, el famoso 755 significa:
- Propietario: 7 (4+2+1) = lectura, escritura y ejecución.
- Grupo: 5 (4+1) = lectura y ejecución.
- Otros: 5 (4+1) = lectura y ejecución.
En PrestaShop, la configuración recomendada suele ser:
- Carpetas: 755 (a veces 775 si necesitas que el grupo escriba).
- Archivos: 644 (a veces 664).
Cuando hablamos de chmod PrestaShop DirectAdmin, nos referimos al comando que cambia estos permisos. En DirectAdmin lo puedes hacer de forma gráfica, sin usar la terminal.
Primeros pasos: identifica el error exacto
No todos los errores de permisos son iguales. Antes de cambiar nada, necesitas saber qué está fallando. Esto te ahorrará tiempo y evitará que rompas algo que funcionaba.
Errores comunes que indican problemas de permisos
- Error 500 (Internal Server Error): El más genérico. Puede ser por un archivo
.htaccesscon permisos incorrectos o por carpetas de caché sin escritura. - "No se puede escribir en la carpeta /cache": PrestaShop intenta crear archivos temporales y no tiene permiso.
- "No se puede crear el archivo .htaccess": Ocurre al activar la URL amigable desde el back office.
- Imágenes que no se suben: La carpeta
/imgo/uploadno tiene permisos de escritura. - Pantalla en blanco: A menudo, el archivo
config/settings.inc.phpno se puede leer o escribir.
[INFO] Si tu tienda muestra un error 500, te recomiendo revisar primero el archivo
error_logen la raíz de tu hosting (carpetapublic_html). A menudo contiene la pista exacta del archivo o carpeta problemática.
Haz una copia de seguridad antes de tocar nada
Este paso es CRÍTICO. Cambiar permisos de forma masiva puede dejarte la tienda en peor estado si no se hace bien. Antes de empezar con los permisos PrestaShop DirectAdmin, entra a tu panel de DirectAdmin, ve a la sección de Copias de Seguridad (Backups) y genera una copia completa de la base de datos y de los archivos. Si algo sale mal, podrás restaurar todo en minutos.
Solución paso a paso usando el Administrador de Archivos de DirectAdmin
La forma más segura y visual de corregir los permisos es usando el Administrador de Archivos que incluye DirectAdmin. No necesitas conocimientos de comandos SSH.
Paso 1: Accede al Administrador de Archivos
- Entra a tu panel de DirectAdmin (normalmente
https://tudominio.com:2222). - En el menú principal, busca el icono "Administrador de Archivos" (File Manager).
- Se abrirá una ventana mostrando la raíz de tu cuenta. Normalmente, tu tienda PrestaShop está en la carpeta
public_html(odomains/tudominio.com/public_html).
Paso 2: Establece los permisos correctos para la raíz
Una vez dentro de la carpeta donde está instalado PrestaShop (donde ves index.php, config, img, etc.):
- Selecciona todos los archivos y carpetas (puedes usar Ctrl+A o el botón de seleccionar todo).
- En la barra superior, busca el botón "Cambiar Permisos" o "Chmod".
- Verás un cuadro con casillas o campos numéricos. Para las carpetas, introduce 755. Para los archivos, introduce 644.
- Aplica los cambios.
[WARNING] Este método masivo es válido para la mayoría de los casos, pero no restablece los permisos especiales que PrestaShop necesita en carpetas de escritura. Los corregiremos en el siguiente paso.
Paso 3: Da permisos de escritura a las carpetas necesarias
PrestaShop necesita que ciertas carpetas sean escribibles para funcionar (subir imágenes, generar caché, etc.). Estas son las que debes cambiar específicamente a 755 (o 775 si tu servidor usa un grupo de usuario diferente, algo poco común en DirectAdmin).
/cache/config/img/log/mails/modules/themes/translations/upload/var(en versiones modernas de PrestaShop 1.7 y 8.x)/app(en versiones 1.7 y superiores, a veces necesita escritura)/download
Para hacerlo:
- Entra a cada una de estas carpetas.
- Selecciona el contenido (archivos y subcarpetas).
- Cambia los permisos a 755 para carpetas y 644 para archivos.
- Asegúrate de que la carpeta en sí (la que acabas de abrir) también tenga 755.
[TIP] En versiones de PrestaShop 1.7 y superiores, a menudo es necesario que la carpeta
/var/cachetenga permisos 775 para que el rendimiento sea óptimo. Si ves errores de caché, prueba con 775.
Paso 4: El archivo settings.inc.php
Este archivo es el corazón de la configuración de tu tienda. Si tiene permisos demasiado restrictivos, no podrás acceder al back office ni a la tienda.
- Navega a
/config/settings.inc.php. - En DirectAdmin, haz clic derecho sobre el archivo y selecciona "Cambiar Permisos".
- Ponlo a 644. Si tu servidor te pide que sea escribible para modificar la URL, cámbialo temporalmente a 666 (solo durante el cambio), y luego vuelve a dejarlo en 644.
Solución avanzada: usando comandos SSH (si te atreves)
Si te sientes cómodo con la terminal, los comandos chmod PrestaShop DirectAdmin son mucho más rápidos y eficientes, sobre todo si tienes miles de archivos. DirectAdmin incluye un acceso SSH en la sección "Acceso SSH", pero primero debes habilitarlo desde "Cuenta de Usuario".
Comando para corregir todas las carpetas
find /ruta/a/tu/prestashop -type d -exec chmod 755 {} \;
Comando para corregir todos los archivos
find /ruta/a/tu/prestashop -type f -exec chmod 644 {} \;
Comando para dar escritura a carpetas específicas
chmod -R 755 cache config img log mails modules themes translations upload download var app
[WARNING] Ejecuta estos comandos desde la raíz de tu instalación de PrestaShop. Si los ejecutas desde la raíz del servidor, podrías dañar otros sitios web de tu cuenta.
Errores típicos y sus soluciones específicas
A veces, el problema no es solo una cuestión de permisos globales. Aquí tienes los casos más frecuentes que verás en soporte.
Error: "No se puede escribir en el archivo .htaccess"
Esto ocurre cuando intentas activar las URL amigables.
- Ve al archivo
.htaccessen la raíz de tu PrestaShop. - Cámbiale los permisos a 644 (o 666 si tu servidor es muy restrictivo).
- Ve a Back Office > Parámetros de la tienda > SEO y URLs y guarda la configuración.
- Vuelve a poner el archivo a 644.
Error: "La carpeta /img no tiene permisos de escritura"
Es muy común al subir logos o imágenes de productos.
- Localiza la carpeta
/imgen el Administrador de Archivos. - Haz clic derecho sobre ella y selecciona "Cambiar Permisos".
- Introduce 755 (o 775 si el error persiste).
- Dentro de
/img, busca la subcarpeta/p(productos) y haz lo mismo.
Error: "Falta la carpeta /var/cache"
En PrestaShop 1.7 y 8.x, la carpeta /var es crítica.
- Si no existe, créala manualmente con el Administrador de Archivos.
- Dentro de
/var, crea la carpeta/cache. - Asigna permisos 755 a
/vary 755 a/var/cache. - Si el error persiste, sube a 775.
Error: "No se puede conectar con la base de datos"
Aunque no es un problema de permisos de archivos, a veces se confunde. Verifica que el archivo config/settings.inc.php tenga los datos correctos y permisos de lectura (644). Si lo cambiaste a 666, el servidor podría estar bloqueando la conexión.
Cómo prevenir futuros problemas de permisos
Una vez que hayas solucionado el problema, es buena idea tomar algunas precauciones para que no vuelva a ocurrir.
Configura el sistema de archivos correctamente
En DirectAdmin, asegúrate de que el usuario de PHP (suExec) coincida con el propietario de los archivos. Esto suele estar bien configurado por defecto, pero si cambiaste el PHP de versión (por ejemplo, de 7.4 a 8.1), a veces se resetean los permisos.
Evita usar 777
Nunca, bajo ninguna circunstancia, uses permisos 777 (lectura, escritura y ejecución para todos). Aunque soluciona todos los problemas de escritura, convierte tu tienda en un colador de seguridad. Cualquier persona podría subir archivos maliciosos.
[TIP] Si tu hosting te obliga a usar 777 para que funcione, es una señal de que el servidor está mal configurado. Contacta con tu proveedor de hosting y pídeles que activen
suExecoPHP-FPMpara que puedas usar permisos seguros (755/644).
Mantén PrestaShop actualizado
Cada versión de PrestaShop ajusta los permisos necesarios. Las versiones antiguas (1.6) son menos estrictas que las modernas (1.7 y 8.x). Si migras de versión, es normal que tengas que ajustar los permisos de las nuevas carpetas (/var, /app).
Revisa el propietario de los archivos
A veces, al subir archivos por FTP, estos se quedan con un propietario incorrecto. En DirectAdmin, ve a Administrador de Archivos y verifica que todos los archivos pertenezcan a tu usuario (el que aparece en el panel). Si ves nobody o www-data, tendrás que cambiar el propietario (esto se hace en la pestaña "Propietario" del menú de archivos).
Preguntas frecuentes (FAQ) sobre permisos en PrestaShop
¿Qué permisos debe tener la carpeta config?
La carpeta /config debe tener permisos 755 y su contenido 644. El archivo settings.inc.php debe ser 644 (o 666 solo temporalmente).
¿Por qué mi tienda funciona pero no puedo subir imágenes?
Esto indica que la carpeta /img o /upload no tiene permisos de escritura para el usuario de PHP. Revisa que el propietario sea el correcto y que el permiso sea al menos 755.
¿Qué hago si tras cambiar los permisos mi tienda da error 500?
Vuelve a poner los permisos originales (755 carpetas, 644 archivos). Si no recuerdas cuáles eran, restaura la copia de seguridad que hiciste al principio. El error 500 suele deberse a que cambiaste los permisos de un archivo crítico como index.php o .htaccess a un valor incorrecto (por ejemplo, 666).
¿Es seguro usar 775 en lugar de 755?
Sí, en muchos servidores es necesario si el grupo del servidor web necesita escribir. En DirectAdmin, si tu cuenta usa mod_php o suPHP, el 775 es perfectamente seguro y compatible.
¿Cómo sé si mi hosting usa DirectAdmin o Syspanel?
Si tu panel de control tiene un aspecto azul con pestañas y secciones como "Administrador de Archivos", "Base de Datos MySQL" y "Acceso SSH", es DirectAdmin. Si en cambio ves un panel llamado Syspanel (accesible en el puerto 2106), es un clon o adaptación de HestiaCP, pero los pasos de permisos son exactamente los mismos.
[INFO] En Syspanel (puerto 2106), la ruta de archivos suele ser ligeramente diferente:
public_htmloweb/tudominio.com/public_html. Pero el concepto de chmod PrestaShop DirectAdmin aplica de forma idéntica. Solo cambia la interfaz gráfica.
Resumen final: checklist rápido
Siempre que tengas problemas de permisos, sigue esta secuencia:
- Haz una copia de seguridad (archivos y BD).
- Identifica el error exacto.
- Establece los permisos base: carpetas 755, archivos 644.
- Da permisos de escritura a las carpetas del sistema (
cache,img,log,config,var,app). - Comprueba el archivo
.htaccessysettings.inc.php. - Limpia la caché de PrestaShop (borra el contenido de
/var/cachey/cache). - Revisa el propietario de los archivos.
Con estos pasos, resolverás el 99% de los errores de permisos PrestaShop DirectAdmin. No tengas miedo de experimentar, pero siempre con una copia de seguridad a mano. Si después de todo sigues teniendo problemas, no dudes en contactar con el soporte de tu hosting, pero ahora ya sabes exactamente qué decirles y qué has probado.
