🎨 Sysprovider Code
Sysprovider LogoWiki
🇪🇸Hosting español para ecommerce

Cómo solucionar problemas de permisos en PrestaShop con DirectAdmin

Actualizado el 6 de septiembre de 2025

¡Hola! Soy tu técnico de soporte amigable. Hoy vamos a resolver uno de los problemas más comunes (y frustrantes) al gestionar una tienda PrestaShop alojada en un servidor con DirectAdmin: los errores de permisos de archivos y carpetas.

Si ves mensajes como "Error 500", "No se puede escribir en la carpeta cache", "Error al subir imágenes" o directamente la tienda se vuelve blanca, es muy probable que el problema sean los permisos de archivos. No te preocupes, no necesitas ser un experto en Linux. Te guiaré paso a paso, como si estuviéramos en una llamada de soporte.

Empecemos.

¿Por qué ocurren los errores de permisos en PrestaShop con DirectAdmin?

PrestaShop, al ser una aplicación PHP que escribe archivos constantemente (imágenes, cachés, logs, módulos), necesita que el usuario del servidor web (normalmente apache, www-data o nobody) y el usuario de FTP (tú) tengan los permisos adecuados.

En un entorno DirectAdmin, el usuario del sistema es quien crea los archivos vía FTP, pero el servidor web necesita poder leerlos y, en muchos casos, escribir en ellos (por ejemplo, en las carpetas cache, img, modules, config). Cuando estos permisos no están bien configurados, aparece el famoso error permisos PrestaShop.

La clave está en entender tres conceptos: Propietario, Grupo y Permisos (chmod).

  • Propietario: El usuario que creó el archivo (tú, vía FTP).
  • Grupo: Un conjunto de usuarios (normalmente el grupo del servidor web).
  • Permisos (chmod): Quién puede leer (r), escribir (w) y ejecutar (x). Se representan con números (755, 644, 777).

[INFO] En DirectAdmin, el usuario del sistema suele ser tu nombre de usuario de hosting. El grupo del servidor web suele ser apache o nobody. Para PrestaShop, lo ideal es que los archivos sean propiedad de tu usuario y el grupo sea el del servidor web, con permisos 644 para archivos y 755 para carpetas. Las carpetas de escritura (cache, img, etc.) necesitan un pequeño ajuste adicional.

Paso 1: Diagnóstico rápido desde DirectAdmin

Antes de lanzarnos a cambiar permisos a lo loco, vamos a identificar el problema exacto. DirectAdmin tiene herramientas muy útiles.

Accede al Administrador de Archivos de DirectAdmin

  1. Inicia sesión en tu panel de DirectAdmin (normalmente tudominio.com:2222).
  2. Busca y haz clic en el icono "Administrador de Archivos" (File Manager).
  3. Navega hasta la carpeta raíz de tu PrestaShop (normalmente public_html o domains/tudominio.com/public_html).

Verifica los permisos actuales

En el Administrador de Archivos, a la derecha de cada archivo/carpeta verás una columna llamada "Permisos" (algo como 0755, 0644, 0777).

  • Archivos (como index.php, config.php): Deberían ser 0644 (lectura/escritura para el propietario, solo lectura para grupo y otros).
  • Carpetas (como img, cache, modules): Deberían ser 0755 (lectura/ejecución para todos, escritura solo para el propietario).
  • Carpetas especiales (como cache, img, config, tools, upload, download, sitemap): Necesitan permisos de escritura para el servidor web. A menudo se usa 0755 (si el grupo es correcto) o 0777 (como último recurso, pero no es recomendable).

[WARNING] Evita usar 0777 en todo el sitio. Es un grave riesgo de seguridad. Solo úsalo temporalmente en carpetas muy específicas como cache o img si el método con grupo no funciona.

Paso 2: Solución principal: Corregir permisos masivamente con SSH (Recomendado)

Esta es la solución más limpia, rápida y segura. Necesitas acceso SSH a tu servidor. Si no lo tienes, muchos hostings lo ofrecen gratis bajo petición.

Conéctate por SSH

Usa un cliente como PuTTY (Windows) o la terminal (Mac/Linux). Te conectarás con tu usuario de DirectAdmin y tu contraseña.

Ejecuta los comandos mágicos

Una vez dentro, navega a la raíz de tu tienda:

cd ~/domains/tudominio.com/public_html

Ahora, ejecuta estos comandos en orden. Son la receta estándar para DirectAdmin PrestaShop chmod correcto.

Paso 1: Cambiar propietario y grupo (opcional pero muy útil)
Asegura que los archivos sean de tu usuario y el grupo sea el del servidor web (normalmente apache o nobody). Pregunta a tu hosting cuál es el grupo, pero apache es el más común.

# Cambia "tu_usuario" por tu usuario de DirectAdmin
chown -R tu_usuario:apache .

Paso 2: Permisos estándar para archivos (644) y carpetas (755)
Este comando recorre todo el directorio y aplica los permisos correctos.

find . -type f -exec chmod 644 {} \;
find . -type d -exec chmod 755 {} \;

Paso 3: Dar permisos de escritura a las carpetas que PrestaShop necesita
Estas carpetas requieren que el servidor web pueda escribir en ellas.

chmod -R 775 cache
chmod -R 775 img
chmod -R 775 config
chmod -R 775 tools
chmod -R 775 upload
chmod -R 775 download
chmod -R 775 sitemap
chmod -R 775 modules
chmod -R 775 themes
chmod -R 775 override
chmod -R 775 mails
chmod -R 775 translations
chmod -R 775 log

[TIP] Si después de esto sigues teniendo errores en alguna carpeta (como img al subir fotos), cambia 775 por 777 temporalmente para esa carpeta específica. Ejemplo: chmod -R 777 img. Una vez solucionado, vuelve a poner 775.

Paso 3: Solución alternativa desde el Administrador de Archivos (Sin SSH)

Si no tienes SSH, puedes hacerlo desde el propio DirectAdmin, aunque es más tedioso para muchas carpetas.

  1. En el Administrador de Archivos, selecciona todos los archivos y carpetas (Ctrl+A o Cmd+A).
  2. Arriba, haz clic en "Cambiar permisos" (Change Permissions).
  3. Marca las casillas para que quede: Propietario (lectura, escritura, ejecución), Grupo (lectura, ejecución), Otros (lectura, ejecución). Esto equivale a 755.
  4. Haz clic en "Aplicar a todas las subcarpetas y archivos" (Apply to all subdirectories and files).
  5. Luego, repite el proceso pero solo para las carpetas especiales (cache, img, etc.) y dales permisos 775 o 777 como en el paso 3 de SSH.

Paso 4: Solución para el error "No se puede escribir en el archivo de configuración"

Este es un error muy específico de PrestaShop. Suele ocurrir al instalar o actualizar módulos.

  1. Ve a la carpeta config de tu PrestaShop.
  2. Busca el archivo defines.inc.php.
  3. Ábrelo con el editor de texto de DirectAdmin.
  4. Busca la línea que dice define('_PS_MODE_DEV_', false); y cámbiala a define('_PS_MODE_DEV_', true);. Esto mostrará errores más detallados.
  5. Guarda el archivo. Temporalmente, dale permisos 0777 a la carpeta config y al archivo settings.inc.php (si existe).
  6. Realiza la acción que te daba error (instalar módulo, etc.).
  7. Una vez solucionado, vuelve a poner permisos 755 a la carpeta config y 644 a settings.inc.php. No olvides desactivar el modo dev (false).

[WARNING] Dejar el modo dev activado en producción expone información sensible de tu servidor. Cámbialo siempre a false después de diagnosticar.

Preguntas Frecuentes (FAQ)

¿Qué permisos debe tener la carpeta img en PrestaShop?

La carpeta img debe tener permisos 755 (o 775 si el grupo es apache). Si al subir imágenes te da error, cámbiala temporalmente a 777, sube las imágenes y luego vuelve a 755. Es muy común que esta carpeta dé problemas.

¿Por qué después de cambiar permisos con DirectAdmin sigue dando error?

Puede ser que el propietario no sea el correcto. El comando chown en SSH es clave. También puede que tu hosting tenga un grupo diferente (por ejemplo, nobody o www-data). Consulta con tu proveedor de hosting cuál es el grupo del servidor web.

¿Es seguro usar chmod 777 en todo PrestaShop?

No, rotundamente no. Es una puerta abierta a cualquier atacante para modificar tus archivos. Solo úsalo en carpetas muy concretas y de forma temporal. La configuración segura es 644 para archivos, 755 para carpetas y 775 para las carpetas de escritura.

¿Cada vez que actualizo PrestaShop tengo que repetir los permisos?

Sí, es muy recomendable. Las actualizaciones pueden reescribir archivos y resetear los permisos a valores por defecto. Después de cada actualización, ejecuta los comandos del Paso 2 de nuevo.

Mi tienda da error 500 después de cambiar permisos, ¿qué hago?

Lo más probable es que hayas cambiado permisos de algún archivo crítico (como index.php) a 755 o 777 y el servidor web no puede leerlo correctamente. Vuelve a poner todos los archivos a 644 con el comando find . -type f -exec chmod 644 {} \;. Si no tienes SSH, desde el Administrador de Archivos selecciona todos los archivos y ponlos a 644 (sin ejecución).

Conclusión: Mantén tu PrestaShop sano

Los problemas de permisos PrestaShop DirectAdmin son comunes, pero con esta guía tienes todas las herramientas para solucionarlos. Recuerda:

  1. Diagnostica primero desde el Administrador de Archivos.
  2. Usa SSH si puedes, es más rápido y fiable.
  3. Aplica la regla: archivos 644, carpetas 755, carpetas de escritura 775.
  4. Nunca uses 777 de forma permanente.

Si después de todo esto el problema persiste, contacta con tu soporte técnico. Diles que ya has revisado los permisos con chmod y chown y que el grupo del servidor web (apache, nobody, etc.) está correctamente asignado. Ellos podrán verificar la configuración del servidor a nivel de sistema.

¡Espero que tu tienda vuelva a funcionar perfectamente! Si tienes otra duda, ya sabes, aquí estoy.

¿Necesitas ayuda?Son dos de nuestros técnicos, Agustín y Mikel, y están disponibles para resolver cualquier problema.

Hablar con ellos ahora
Agustín y Mikel