Problemas de permisos en PrestaShop con DirectAdmin y soluciones
¡Hola! Soy tu técnico de soporte amigable. Si estás leyendo esto, seguramente te has topado con el temido error permisos PrestaShop mientras usas DirectAdmin. No te preocupes, es uno de los problemas más comunes y, con esta guía, lo solucionarás paso a paso. Vamos a desglosar por qué ocurre, cómo identificarlo y, lo más importante, cómo arreglarlo de forma segura. Recuerda que trabajaremos con permisos PrestaShop DirectAdmin, usando comandos CHMOD PrestaShop y ajustes en el panel.
¿Por qué ocurren los problemas de permisos en PrestaShop con DirectAdmin?
Los permisos de archivos y carpetas son como las reglas de una biblioteca: determinan quién puede leer, escribir o ejecutar cada recurso. En un servidor con DirectAdmin, tu tienda PrestaShop necesita permisos específicos para funcionar. Cuando algo se desconfigura (por ejemplo, al subir archivos con un cliente FTP, al instalar un módulo o al actualizar la tienda), aparecen errores como:
- Error 500 Internal Server Error.
- No se puede escribir en la carpeta /cache.
- No se puede subir imágenes.
- Error al instalar o actualizar módulos.
- Pantalla en blanco (White Screen of Death).
Estos problemas suelen deberse a que los archivos tienen propietarios o grupos incorrectos, o a que los permisos numéricos (como 755 o 644) no son los adecuados.
Antes de empezar: conecta a tu servidor por SSH (o usa el gestor de archivos de DirectAdmin)
Para solucionar los permisos PrestaShop DirectAdmin, necesitas acceso al servidor. Tienes dos opciones:
Opción 1: Usar el Gestor de Archivos de DirectAdmin (más fácil)
- Ingresa a tu panel de DirectAdmin.
- Ve a Gestor de Archivos.
- Navega hasta la carpeta raíz de tu PrestaShop (normalmente
public_htmlotienda). - Desde aquí puedes cambiar permisos de archivos y carpetas haciendo clic derecho y seleccionando Cambiar permisos. Sin embargo, para cambios masivos, el SSH es más rápido.
Opción 2: Conectar por SSH (recomendado para cambios globales)
Necesitarás un cliente SSH (como PuTTY en Windows o la terminal en Mac/Linux). Tus credenciales SSH las encuentras en DirectAdmin: Cuenta -> Acceso SSH. Una vez conectado, usa estos comandos.
[WARNING] Si no te sientes cómodo con SSH, pide ayuda a tu proveedor de hosting o usa el Gestor de Archivos. Un error en los permisos puede dejar tu tienda inaccesible.
Paso 1: Identificar los permisos correctos para PrestaShop
PrestaShop, como la mayoría de los CMS, necesita estos permisos estándar:
- Carpetas: 755 (rwx r-x r-x) – El propietario puede leer, escribir y ejecutar; el grupo y otros solo leer y ejecutar.
- Archivos: 644 (rw- r-- r--) – El propietario puede leer y escribir; el grupo y otros solo leer.
- Archivos especiales (como
config/settings.inc.php): a veces 444 (solo lectura) por seguridad, pero durante la instalación o actualización pueden necesitar 644.
Además, los siguientes directorios deben tener permisos 755 y ser propiedad del usuario del hosting (no del root):
/cache/log/img/mails/modules/themes/translations/upload/download/config/override
[TIP] El propietario de los archivos debe ser el usuario de DirectAdmin (por ejemplo,
usuario1), y el grupo debe serusuario1onobody, dependiendo de la configuración del servidor. Si no estás seguro, pregunta a tu hosting.
Paso 2: Solucionar permisos con comandos CHMOD (desde SSH)
Conéctate por SSH y ubícate en la carpeta raíz de tu tienda. Por ejemplo:
cd /home/usuario1/domains/tudominio.com/public_html
Ahora, ejecuta estos comandos para restaurar los permisos correctos:
Para todas las carpetas (recursivamente):
find . -type d -exec chmod 755 {} \;
Para todos los archivos (recursivamente):
find . -type f -exec chmod 644 {} \;
Para archivos específicos que necesiten permisos de escritura temporal (como durante una actualización):
chmod 755 config/settings.inc.php
chmod 755 cache/
chmod 755 log/
Si necesitas cambiar el propietario y grupo (ajusta usuario1:usuario1 a tu usuario real):
chown -R usuario1:usuario1 .
[WARNING] El comando
chown -Rcambiará TODOS los archivos. Asegúrate de estar en la carpeta correcta. Si lo ejecutas en la raíz del servidor, podrías romper otros sitios.
Paso 3: Solucionar permisos desde el Gestor de Archivos de DirectAdmin
Si prefieres no usar SSH, sigue estos pasos en DirectAdmin:
- Ve a Gestor de Archivos y selecciona tu carpeta raíz.
- Marca todos los archivos y carpetas (puedes usar Ctrl+A o seleccionar todo).
- Haz clic en Cambiar permisos (o Chmod).
- En la ventana emergente, elige:
- Para carpetas: marca 755 (rwx r-x r-x).
- Para archivos: marca 644 (rw- r-- r--).
- Activa la opción Recursivo (aplicar a subcarpetas y archivos).
- Haz clic en Guardar.
[INFO] Este método puede tardar si tienes muchos archivos. Sé paciente.
Paso 4: Verificar la configuración de PHP y el servidor
A veces el problema no son los permisos de archivos, sino la configuración de PHP o del servidor. Aquí algunos puntos a revisar:
4.1. Comprobar el usuario de PHP (PHP-FPM o suPHP)
En DirectAdmin, PHP suele ejecutarse como el usuario del hosting (modo suPHP o PHP-FPM). Si tu servidor usa mod_php (como Apache módulo), los archivos deben ser propiedad del usuario nobody o apache. Pregunta a tu hosting cuál es el modo.
- Si usas PHP-FPM, el usuario debe ser el mismo que el de los archivos (ej.
usuario1). - Si usas mod_php, puedes necesitar cambiar el grupo a
nobody:chown -R usuario1:nobody . chmod -R 755 .
4.2. Revisar el archivo .htaccess
Un .htaccess corrupto puede causar errores de permisos. Renómbralo temporalmente:
mv .htaccess .htaccess_backup
Luego, desde el panel de administración de PrestaShop, regenera el .htaccess yendo a Configuración avanzada -> Rendimiento -> Regenerar archivo .htaccess.
4.3. Verificar la memoria de PHP
A veces un error de permisos se confunde con un límite de memoria. Aumenta la memoria en el archivo php.ini o en el .htaccess:
php_value memory_limit 256M
php_value max_execution_time 180
Paso 5: Solucionar errores específicos de PrestaShop
Error "No se puede escribir en /cache"
Este es el más común. Limpia la caché manualmente:
rm -rf /cache/smarty/cache/*
rm -rf /cache/smarty/compile/*
Luego, asegúrate de que la carpeta /cache tenga permisos 755 y sea propiedad del usuario correcto.
Error al subir imágenes
Revisa los permisos de /img y /upload:
chmod 755 img/ upload/
Error al instalar módulos
Los módulos se descargan en /modules. Asegúrate de que esta carpeta tenga permisos 755 y que el propietario sea el usuario del hosting.
[TIP] Si después de todo sigues con problemas, desactiva temporalmente los módulos de terceros renombrando la carpeta
/modules(por ejemplo, a/modules_off) y crea una nueva vacía con permisos 755. Luego, reactiva uno por uno.
Paso 6: Prevenir futuros problemas de permisos
- Usa un cliente FTP configurado correctamente: Al subir archivos, asegúrate de que el modo de transferencia sea binario y que los permisos se mantengan (muchos clientes FTP tienen una opción "Preservar permisos").
- Actualiza PrestaShop y los módulos regularmente: Las versiones antiguas pueden tener bugs que afecten los permisos.
- Haz copias de seguridad: Antes de cualquier cambio masivo, respalda tu tienda (archivos y base de datos).
- Configura un cron para revisar permisos: Puedes programar un script que ejecute los comandos CHMOD cada semana.
FAQ: Preguntas frecuentes sobre permisos PrestaShop DirectAdmin
1. ¿Qué permisos debe tener la carpeta /config en PrestaShop?
La carpeta /config debe tener permisos 755. El archivo settings.inc.php puede estar en 644 o 444 (solo lectura) por seguridad. Si necesitas escribir en él (por ejemplo, durante una actualización), cámbialo temporalmente a 755.
2. ¿Por qué después de cambiar permisos con CHMOD sigo viendo error?
Puede deberse a:
- El propietario/grupo incorrecto (revisa con
ls -la). - Caché del navegador o de PrestaShop (limpia la caché).
- Configuración de PHP (modo
mod_phpvsPHP-FPM). - Archivos bloqueados por un proceso (como un cron).
3. ¿Es seguro usar 777 en PrestaShop?
Nunca uses permisos 777 (lectura, escritura y ejecución para todos). Es un agujero de seguridad. Si un módulo te pide 777, busca alternativas o contacta al desarrollador.
4. ¿Cómo cambio el propietario de los archivos en DirectAdmin?
Desde SSH con el comando chown. En DirectAdmin, ve a Gestor de Archivos, selecciona los archivos, haz clic en Cambiar propietario (si está disponible) y elige el usuario correcto.
5. ¿Afecta esto si uso Syspanel (HestiaCP)?
Si migraste de DirectAdmin a Syspanel (HestiaCP), los permisos funcionan similar, pero el acceso SSH es por el puerto 2106. Los comandos CHMOD y chown son los mismos. Asegúrate de que el usuario del hosting coincida con el propietario de los archivos.
Resumen final
Los problemas de permisos en PrestaShop con DirectAdmin son molestos, pero casi siempre tienen solución. Recuerda la regla de oro: carpetas 755, archivos 644, propietario correcto. Usa los comandos CHMOD que te he mostrado, verifica la configuración de PHP y no olvides limpiar la caché. Si todo falla, tu hosting (o un técnico amigable como yo) puede ayudarte.
Espero que esta guía te haya sido útil. ¡Tu tienda volverá a funcionar en poco tiempo! Si tienes más dudas, no dudes en preguntar.
[INFO] Para consultas técnicas avanzadas, siempre es recomendable contactar al soporte de tu proveedor de hosting, ya que ellos conocen la configuración específica de su servidor.
