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

Errores de permisos en PrestaShop con DirectAdmin y cómo arreglarlos

Actualizado el 29 de abril de 2026

¡Hola! Soy tu técnico de soporte amigable. Si estás leyendo esto, seguramente te has topado con el temido error de permisos en tu tienda PrestaShop alojada en un servidor con DirectAdmin. No te preocupes, es uno de los problemas más comunes y, con esta guía, lo resolverás paso a paso.

Los errores de permisos pueden manifestarse de muchas formas: no puedes subir imágenes, los módulos no se instalan, la tienda se ve en blanco, o aparece un mensaje como "Error 500" o "No se puede escribir en el directorio". La raíz del problema suele ser una configuración incorrecta de los permisos de archivos y carpetas, o un conflicto con el usuario del servidor (PHP-FPM, Apache, etc.). Vamos a desglosarlo todo.

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

Para entenderlo, imagina que tu servidor es un edificio con varias puertas. Cada puerta tiene una cerradura que solo puede abrir un usuario específico. PrestaShop necesita abrir ciertas puertas para guardar imágenes, crear archivos de caché o instalar módulos. Si la cerradura está mal configurada, el sistema no puede acceder.

En DirectAdmin, los sitios web suelen ejecutarse bajo un usuario del sistema (ej: usuario1). Sin embargo, a veces PHP se ejecuta como otro usuario (por ejemplo, nobody o apache). Cuando PrestaShop intenta escribir archivos, el usuario de PHP no tiene permiso para hacerlo, y ¡bum! Error.

Los casos más frecuentes son:

  • Permisos demasiado restrictivos: Archivos en 644 y carpetas en 755 son estándar, pero a veces necesitas permisos más abiertos temporalmente.
  • Propietario incorrecto: Los archivos pertenecen a root o a otro usuario, no al usuario de tu sitio.
  • PHP-FPM mal configurado: Si usas PHP-FPM (recomendado), el proceso PHP corre como tu usuario, pero si usas mod_php o CGI, puede haber conflictos.
  • Configuración de SELinux o AppArmor: Medidas de seguridad que bloquean escrituras.

Paso 1: Diagnóstico rápido del error permisos PrestaShop

Antes de arreglar nada, debemos identificar el problema exacto. Activa el modo debug de PrestaShop para ver el error real.

Cómo activar el modo debug en PrestaShop

  1. Accede a tu panel de DirectAdmin y ve a Administrador de archivos.
  2. Navega hasta la raíz de tu tienda (donde está index.php).
  3. Busca el archivo config/defines.inc.php.
  4. Edítalo y busca la línea: define('_PS_MODE_DEV_', false);
  5. Cámbiala a: define('_PS_MODE_DEV_', true);
  6. Guarda el archivo. Ahora, al cargar tu tienda, verás el error detallado.

[WARNING] No olvides volver a poner false cuando termines de depurar, o tu tienda mostrará información sensible a los visitantes.

Interpretando el mensaje de error

Los errores típicos son:

  • "Failed to write file": No se puede escribir en cache/, img/, upload/, etc.
  • "Permission denied": El usuario de PHP no tiene acceso a una carpeta.
  • "Cannot create directory": Falta permiso para crear subcarpetas (por ejemplo, al subir productos).
  • "Error 500": Puede ser por permisos incorrectos en config/settings.inc.php.

Anota la ruta exacta que menciona el error. Por ejemplo: /home/usuario1/domains/tutienda.com/public_html/img/p/1.

Paso 2: Soluciones básicas para arreglar PrestaShop DirectAdmin

Aquí tienes las soluciones más efectivas, ordenadas de la más simple a la más avanzada.

Solución 1: Cambiar permisos desde DirectAdmin (La más común)

DirectAdmin tiene un Administrador de archivos muy potente. Vamos a usarlo para corregir los permisos de forma masiva.

  1. En DirectAdmin, ve a Administrador de archivos.
  2. Navega a la carpeta raíz de tu PrestaShop (normalmente public_html o domains/tudominio.com/public_html).
  3. Selecciona todos los archivos y carpetas (puedes usar Ctrl+A).
  4. Haz clic en Cambiar permisos (o "Change Permissions").
  5. En la ventana, verás dos casillas:
    • Permisos de archivo: Pon 644.
    • Permisos de carpeta: Pon 755.
  6. Marca la opción "Recursivo" (para aplicar a todas las subcarpetas).
  7. Haz clic en Guardar.

Esto restablece los permisos estándar. Si el error persiste, prueba con permisos más abiertos temporalmente (solo para pruebas): archivos 644, carpetas 755 pero con propietario correcto (siguiente paso).

Solución 2: Verificar y corregir el propietario (Owner)

El propietario de los archivos debe ser el usuario de tu cuenta de hosting. En DirectAdmin, suele ser el mismo que tu nombre de usuario.

  1. En el Administrador de archivos, selecciona la carpeta public_html.
  2. Haz clic en Propiedades o Info (dependiendo de la versión de DirectAdmin).
  3. Verás el Propietario y el Grupo. Ambos deben ser tu nombre de usuario (ej: usuario1).
  4. Si no es así, usa la opción "Cambiar propietario" (o "Chown") que suele estar en el menú de acciones.
  5. Selecciona tu usuario tanto para propietario como para grupo.
  6. Marca "Recursivo" y aplica.

[TIP] Si no ves la opción "Cambiar propietario", puede que necesites permisos de root. En ese caso, contacta a tu proveedor de hosting y pídele que ejecute: chown -R usuario1:usuario1 /home/usuario1/domains/tudominio.com/public_html/

Solución 3: Configurar PHP-FPM correctamente

PHP-FPM (FastCGI Process Manager) ejecuta PHP bajo el usuario de tu cuenta, lo que evita muchos problemas de permisos. En DirectAdmin, se configura fácilmente.

  1. En DirectAdmin, ve a Configuración de dominio o PHP Selector (dependiendo de la versión).
  2. Busca la opción "Modo PHP" o "PHP Handler".
  3. Selecciona "PHP-FPM" (a veces aparece como "PHP-FPM (suPHP)" o "FastCGI").
  4. Guarda los cambios. Esto puede tardar unos segundos.

Al usar PHP-FPM, todos los archivos que cree PrestaShop pertenecerán a tu usuario, eliminando el error de permisos más común.

Solución 4: Forzar permisos en carpetas críticas de PrestaShop

A veces, incluso con los permisos generales correctos, algunas carpetas necesitan permisos especiales porque PrestaShop escribe archivos temporalmente. Las carpetas clave son:

  • cache/
  • img/
  • log/
  • mails/
  • modules/
  • themes/ (a veces)
  • upload/
  • download/
  • translations/
  • config/ (especialmente settings.inc.php)

Para estas carpetas, puedes dar permisos 777 temporalmente:

  1. En el Administrador de archivos, busca cada carpeta.
  2. Haz clic derecho > Cambiar permisos.
  3. Pon 777 (tanto para archivos como carpetas, aunque solo necesitas carpetas).
  4. Marca Recursivo.
  5. Una vez que el error desaparezca, vuelve a poner 755 por seguridad.

[WARNING] No dejes nunca los permisos en 777 de forma permanente. Es un agujero de seguridad. Úsalo solo para pruebas y después revierte.

Paso 3: Soluciones avanzadas (si nada funciona)

Si después de todo lo anterior el error persiste, toca revisar configuraciones más profundas.

Verificar la configuración de PHP (php.ini)

A veces, la función open_basedir restringe los directorios a los que PHP puede acceder.

  1. En DirectAdmin, ve a PHP Selector > Configuración personalizada.
  2. Busca la directiva open_basedir.
  3. Asegúrate de que incluya la ruta de tu tienda. Por ejemplo:
    open_basedir = /home/usuario1/domains/tudominio.com/public_html/:/tmp/
  4. Si no aparece, añádela. Guarda y reinicia PHP (desde el panel de DirectAdmin).

Revisar archivos .htaccess y nginx.conf

Un .htaccess corrupto puede causar errores 500 y de permisos.

  1. Renombra temporalmente tu .htaccess a .htaccess_old.
  2. Prueba tu tienda. Si funciona, el problema está en el archivo.
  3. Genera uno nuevo desde el panel de administración de PrestaShop (Parámetros de la tienda > Tráfico y SEO > URL > Guardar).

Si usas Nginx como servidor web (común en DirectAdmin), revisa la configuración en Configuración de dominio > Nginx. Asegúrate de que las reglas de reescritura sean correctas.

Comprobar SELinux (si está activo)

Algunos servidores tienen SELinux activo, que bloquea escrituras incluso con permisos 777.

  1. Conéctate por SSH (o pide a tu proveedor que lo haga).
  2. Ejecuta: getenforce (debería decir "Enforcing" o "Permissive").
  3. Si está "Enforcing", puedes desactivarlo temporalmente con: setenforce 0.
  4. Si el error desaparece, necesitas configurar los contextos de SELinux para tu carpeta. Ejecuta:
    semanage fcontext -a -t httpd_sys_rw_content_t '/home/usuario1/domains/tudominio.com/public_html(/.*)?'
    restorecon -Rv /home/usuario1/domains/tudominio.com/public_html/

[INFO] Si no tienes acceso SSH, solicita a tu hosting que revise SELinux.

Preguntas Frecuentes (FAQ) sobre errores de permisos en PrestaShop

P: ¿Por qué después de arreglar los permisos, el error vuelve a aparecer?
R: Esto suele pasar cuando instalas un módulo o actualizas PrestaShop. El proceso de instalación a veces cambia los permisos. Te recomiendo que después de cada instalación, ejecutes de nuevo la Solución 1 (restablecer permisos a 644/755).

P: ¿Es seguro usar permisos 777 en las carpetas de PrestaShop?
R: No. Solo debe hacerse temporalmente para resolver un error. Un atacante podría subir archivos maliciosos a esas carpetas. Siempre revierte a 755 después.

P: Mi hosting usa Syspanel (HestiaCP) en lugar de DirectAdmin. ¿Vale esta guía?
R: Sí, los principios son los mismos. En Syspanel (puerto 2106), el administrador de archivos es similar. Busca la opción "Permisos" o "Chmod". La configuración de PHP se encuentra en "Servicios" > "PHP". El proceso es análogo.

P: El error dice "No se puede escribir en config/settings.inc.php". ¿Qué hago?
R: Este archivo es crítico. Dale permisos 644 (o 777 temporalmente) y asegúrate de que el propietario sea tu usuario. Si el archivo no existe, PrestaShop no se ha instalado bien; reinstálalo.

P: Uso CloudLinux y PHP Selector. ¿Afecta a los permisos?
R: Sí, CloudLinux aísla a los usuarios. Si tienes problemas, asegúrate de que el modo PHP esté en "PHP-FPM" (no en "mod_suphp" o "CGI"). En el selector de PHP de DirectAdmin, elige la opción que diga "PHP-FPM" específicamente.

Resumen y checklist final

Para que no te pierdas, aquí tienes una lista de verificación rápida:

  • Diagnóstico: Activar modo debug en config/defines.inc.php.
  • Permisos estándar: Archivos 644, carpetas 755 de forma recursiva.
  • Propietario: Todo debe pertenecer a tu usuario (chown).
  • Modo PHP: Usar PHP-FPM en DirectAdmin.
  • Carpetas críticas: Dar 777 temporal a cache/, img/, upload/, etc.
  • Configuración PHP: Revisar open_basedir en PHP Selector.
  • .htaccess: Renombrar y regenerar.
  • SELinux: Desactivar temporalmente o configurar contextos.

Si sigues estos pasos, el error de permisos en tu PrestaShop con DirectAdmin será historia. Recuerda que soy tu técnico de soporte amigable: si algo no queda claro, no dudes en leer de nuevo la sección correspondiente. ¡Tu tienda online volverá a funcionar en minutos!

[TIP FINAL] Siempre haz una copia de seguridad de tu base de datos y archivos antes de hacer cambios masivos de permisos. ¡Nunca se sabe!

¿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