Cómo configurar una tarea cron en Plesk para PrestaShop
¿Por qué PrestaShop necesita una tarea cron en Plesk?
Si tienes una tienda online con PrestaShop, seguramente has notado que algunas funciones como la generación de informes, la actualización de divisas, el envío de newsletters o la limpieza de archivos temporales no funcionan del todo bien si no se ejecutan automáticamente. Eso es porque PrestaShop depende de tareas programadas (cron jobs) para realizar ciertos procesos en segundo plano.
En este artículo te voy a enseñar paso a paso cómo configurar cron en Plesk para tu tienda PrestaShop, incluso si nunca has tocado un panel de hosting en tu vida. Vamos a ello.
¿Qué es una tarea cron y por qué es tan importante?
Una tarea cron es un comando que el servidor ejecuta automáticamente en un horario específico. Piensa en ello como un despertador: tú programas la hora y el servidor hace el trabajo sin que tengas que estar pendiente.
En el caso de PrestaShop, las tareas cron son esenciales para:
- Actualizar los precios de las divisas automáticamente.
- Enviar correos electrónicos de carritos abandonados o newsletters.
- Generar informes de ventas y estadísticas.
- Limpiar la caché y archivos temporales.
- Ejecutar módulos que dependen de procesos periódicos (como sincronizaciones con marketplaces).
Si no configuras una tarea cron PrestaShop, tu tienda funcionará, pero muchas automatizaciones se romperán o tendrás que hacerlas manualmente. Y eso no es nada productivo.
Antes de empezar: ¿Qué necesito?
Para configurar la tarea cron en Plesk necesitarás:
- Acceso al panel de Plesk de tu hosting (normalmente en
https://tudominio.com:8443). - La ruta absoluta donde está instalado PrestaShop (normalmente
httpdocsopublic_html). - La URL de tu tienda (por ejemplo,
https://tutienda.com). - Un poco de paciencia, porque vamos a hacerlo bien, paso a paso.
[INFO] Si tu hosting usa Syspanel (antes conocido como HestiaCP), el acceso se realiza por el puerto 2106 y el proceso es similar, aunque los nombres de los campos pueden variar ligeramente.
Paso 1: Encuentra la URL del cron de PrestaShop
PrestaShop tiene un archivo llamado cron.php que se encuentra en la raíz de tu instalación. Para que funcione correctamente, necesitas saber la URL exacta.
Normalmente será algo como:
https://tutienda.com/cron.php
Pero ojo, algunos módulos requieren parámetros adicionales. Para obtener la URL exacta:
- Ve al panel de administración de PrestaShop.
- Navega a Parámetros avanzados > Mantenimiento (o "Cron" según la versión).
- Busca la sección que dice "URL del cron" o "Tareas programadas".
- Copia la URL completa. Suele tener un formato como:
https://tutienda.com/cron.php?token=123456789&time=3600
Guarda esa URL porque la necesitaremos más adelante.
[TIP] Si no encuentras la URL, puedes crearla manualmente. El token se genera automáticamente y lo puedes ver en el archivo
config/settings.inc.phpbuscando_CRON_TOKEN_.
Paso 2: Accede al panel de Plesk
Abre tu navegador y escribe la dirección de tu panel de Plesk. Si no la sabes, normalmente es:
https://tudominio.com:8443
Introduce tus credenciales (usuario y contraseña). Si no las tienes, contacta con tu proveedor de hosting.
Una vez dentro, busca la sección "Programador de tareas" o "Cron Jobs". En Plesk suele estar en el menú lateral, dentro de tu dominio o plan de hosting.
Paso 3: Crear la tarea cron en Plesk
Ahora viene la parte interesante. Vamos a configurar el cron en Plesk paso a paso:
- Haz clic en "Añadir tarea cron" o "Crear nueva tarea".
- Verás un formulario con varios campos. Te explico cada uno:
3.1. Comando a ejecutar
Aquí es donde debes poner el comando. Para PrestaShop, normalmente se usa PHP CLI (interfaz de línea de comandos). El comando básico es:
/usr/bin/php /ruta/absoluta/hasta/cron.php
Pero claro, necesitas la ruta absoluta. En Plesk, la ruta suele ser:
/var/www/vhosts/tudominio.com/httpdocs/cron.php
Si no estás seguro, puedes usar un truco: crea un archivo llamado info.php en la raíz de tu web con el contenido <?php echo __DIR__; ?> y ábrelo en el navegador. Te mostrará la ruta exacta.
Otra opción más sencilla: usa la URL directamente con wget o curl. Por ejemplo:
/usr/bin/curl -s "https://tutienda.com/cron.php?token=123456789&time=3600"
[WARNING] No uses
wgetsi tu servidor tiene problemas de memoria.curles más ligero y fiable para este tipo de tareas.
3.2. Programación (minutos, horas, días)
Plesk te permite elegir entre un modo sencillo (cada X minutos, horas, etc.) o un modo avanzado con sintaxis cron.
Para PrestaShop, lo más recomendado es ejecutar el cron cada 5 minutos. Esto asegura que las tareas de envío de correos o actualización de divisas se hagan con rapidez.
En el modo sencillo:
- Minutos: 5
- Horas: *
- Días: *
- Meses: *
- Días de la semana: *
En el modo avanzado (si te atreves), sería:
*/5 * * * *
3.3. Usuario
Selecciona el usuario de sistema que tiene permisos sobre los archivos de tu web. Normalmente es el usuario FTP o el que aparece por defecto en Plesk.
3.4. Notificaciones por correo
Puedes activar que te envíe un correo cuando la tarea se ejecute. Te recomiendo desactivarlo al principio para no recibir spam, o configurarlo solo para errores.
Paso 4: Probar la tarea cron
Antes de dar por bueno el trabajo, vamos a probar que todo funciona:
- Guarda la tarea cron.
- Pulsa el botón "Ejecutar ahora" (si Plesk te lo permite).
- Revisa el log o el correo de notificación para ver si hay errores.
También puedes abrir la URL del cron manualmente en tu navegador para comprobar que responde. Deberías ver un mensaje tipo "Cron running" o un código de éxito.
[INFO] Si tu tienda está en modo mantenimiento, el cron puede fallar. Asegúrate de que el cron no dependa de la tienda visible al público.
Paso 5: Verificar que PrestaShop usa la tarea cron
Una vez configurada la tarea, PrestaShop debería detectarla automáticamente. Para verificarlo:
- Ve a Parámetros avanzados > Mantenimiento en el panel de administración.
- Busca la sección de "Cron".
- Deberías ver la fecha de la última ejecución y el estado "OK".
Si no aparece, puede que necesites desactivar y reactivar el cron desde el propio PrestaShop, o revisar que el token es correcto.
Errores comunes y cómo solucionarlos
El cron no se ejecuta
- Revisa la ruta: Asegúrate de que la ruta al archivo
cron.phpes correcta. Un error típico es ponerhttpdocscuando el directorio se llamapublic_html. - Permisos: El usuario del cron debe tener permisos de lectura y ejecución sobre el archivo.
- PHP CLI: Verifica que la ruta a PHP es correcta. Puedes probar con
which phpen la terminal SSH.
El cron se ejecuta pero PrestaShop no actualiza
- Token incorrecto: Si usas la URL con token, asegúrate de que es el mismo que aparece en tu panel de PrestaShop.
- Tiempo de ejecución: Algunos procesos tardan más de 30 segundos. Aumenta el límite si es necesario.
Problemas con la memoria
Si ves errores de memoria, añade al comando:
/usr/bin/php -d memory_limit=512M /ruta/cron.php
¿Y si uso WordPress? Diferencias clave
Aunque el artículo se centra en PrestaShop, mucha gente busca cron WordPress en Plesk. El proceso es similar, pero con diferencias:
- En WordPress, el archivo es
wp-cron.phpy se encuentra en la raíz. - La URL sería
https://tutienda.com/wp-cron.php. - No necesita token, pero se recomienda desactivar el cron de WordPress por defecto y usar uno real.
Para desactivar el cron de WordPress, añade al wp-config.php:
define('DISABLE_WP_CRON', true);
Y luego configuras la tarea cron en Plesk apuntando a wp-cron.php.
[TIP] En Syspanel (puerto 2106), la sección se llama "Cron Jobs" y está en el menú principal. El comando sería el mismo, solo cambia la ruta de acceso al panel.
Buenas prácticas para tareas programadas en hosting
Aquí van algunos consejos que te ahorrarán dolores de cabeza:
- No ejecutes el cron cada minuto si no es necesario. Cada 5 minutos es suficiente para PrestaShop.
- Usa
curlen lugar dewgetpara evitar problemas de tiempo de espera. - Mantén un registro de las tareas que tienes configuradas.
- Revisa los logs al menos una vez al mes para detectar errores silenciosos.
- No dupliques tareas: Si tienes varios dominios en el mismo hosting, asegúrate de que cada cron apunta a su propio archivo.
Preguntas frecuentes (FAQ)
¿Puedo configurar varias tareas cron para PrestaShop?
Sí, puedes crear tantas como necesites. Por ejemplo, una para divisas cada hora y otra para newsletters cada 5 minutos.
¿Qué pasa si mi hosting no tiene Plesk?
Si usas cPanel, el proceso es similar pero en la sección "Cron Jobs". Si usas Syspanel (puerto 2106), busca "Cron Jobs" en el menú.
¿El cron afecta al rendimiento de mi tienda?
Muy poco. Una tarea bien configurada consume recursos mínimos. Si notas lentitud, revisa que no se esté ejecutando más veces de las necesarias.
¿Necesito conocimientos de programación?
No, con seguir esta guía es suficiente. Solo necesitas copiar y pegar comandos básicos.
¿Qué hago si el cron no aparece en el panel de PrestaShop?
Revisa que el archivo cron.php existe y que el token es correcto. También prueba a desactivar y activar el cron desde PrestaShop.
Conclusión
Configurar una tarea cron en Plesk para PrestaShop no es complicado si sigues los pasos correctos. Solo necesitas:
- Obtener la URL del cron de tu tienda.
- Acceder al panel de Plesk.
- Crear una tarea con el comando adecuado.
- Programarla cada 5 minutos.
- Verificar que funciona.
Con esto, tu tienda funcionará de forma más autónoma y no tendrás que preocuparte por actualizar divisas, enviar correos o limpiar caché manualmente.
[TIP] Si te has perdido en algún paso, no dudes en contactar con tu soporte de hosting. Es mejor preguntar que romper algo. Y recuerda: en Syspanel el acceso es por el puerto 2106, pero el concepto es el mismo.
Ahora ya sabes cómo configurar cron Plesk para PrestaShop. ¡Tu tienda te lo agradecerá!
