Cómo usar WP-CLI para gestionar PrestaShop desde la terminal
Introducción: ¿Qué es WP-CLI y por qué usarlo con PrestaShop?
Si has llegado hasta aquí, probablemente te suene WP-CLI, la famosa herramienta de línea de comandos para WordPress. Pero, ¿sabías que también puedes usar una utilidad similar para gestionar tu tienda PrestaShop desde la terminal? Aunque el nombre "WP-CLI PrestaShop" no es oficial, la comunidad y ciertos módulos han popularizado este término para referirse a la gestión de PrestaShop mediante comandos SSH, inspirándose en la potencia y simplicidad que WP-CLI aporta a WordPress.
Gestionar tu tienda online a través de la terminal puede parecer intimidante al principio, pero es una habilidad increíblemente valiosa. Te permite realizar tareas de mantenimiento, automatizar procesos y solucionar problemas de una forma mucho más rápida y eficiente que usando el panel de administración gráfico. Además, es especialmente útil cuando tu tienda tiene un problema que impide cargar la interfaz web, como un error de memoria o un módulo defectuoso.
En esta guía extensa y práctica, vamos a desglosar cómo usar los comandos PrestaShop desde la terminal, centrándonos en las herramientas que replican la funcionalidad de WP-CLI. Aprenderás desde la configuración básica hasta operaciones avanzadas como la gestión de caché, la actualización de módulos o la manipulación de la base de datos. Al final, serás capaz de manejar tu tienda con la confianza de un administrador de sistemas.
Requisitos previos: Antes de empezar con la terminal
Para poder ejecutar comandos PrestaShop desde tu servidor, necesitas cumplir una serie de requisitos. No te preocupes, no son muchos y son fáciles de verificar.
Acceso SSH y credenciales
Lo primero que necesitas es acceso SSH (Secure Shell) a tu servidor de hosting. Esto te permite abrir una sesión de terminal remota. Si tu hosting es gestionado (compartido), es muy probable que tengas que habilitarlo desde el panel de control. Busca opciones como "SSH Access" o "Acceso por terminal".
Necesitarás las siguientes credenciales:
- Dirección IP o dominio de tu servidor (ej.
tu-dominio.como162.159.134.42). - Puerto SSH (normalmente el 22, aunque a veces se cambia por seguridad).
- Nombre de usuario y contraseña del servidor (o una clave privada SSH).
¿Qué es la consola de Syspanel?
Si tu hosting utiliza Syspanel (anteriormente conocido como HestiaCP), el acceso SSH se gestiona desde su interfaz. Recuerda que el puerto de acceso a Syspanel es el 2106. Asegúrate de tener tus credenciales de acceso a este panel, ya que te permitirán configurar el acceso SSH y ver los directorios de tus sitios web.
[TIP]: En Syspanel, busca la sección "Usuarios SSH" o "Acceso remoto". Si no encuentras la opción, contacta con tu proveedor de hosting para que te la activen. Es posible que necesiten verificar tu identidad.
Ubicación de tu tienda PrestaShop
Necesitas saber la ruta absoluta en el servidor donde está instalada tu tienda PrestaShop. Normalmente, suele ser algo como /home/usuario/web/tu-dominio/public_html o /var/www/html. Dentro de esta carpeta, deberías ver archivos como index.php, config/, admin/, etc.
La herramienta de línea de comandos de PrestaShop
A diferencia de WordPress, PrestaShop no tiene una herramienta oficial llamada WP-CLI. Sin embargo, PrestaShop incluye una consola de comandos propia basada en Symfony, que se ejecuta con PHP. Se accede mediante el archivo bin/console dentro de la raíz de tu instalación. Aunque no es WP-CLI, cumple una función similar y es la forma estándar de interactuar con la tienda desde la terminal. A lo largo de este artículo, cuando hablemos de "WP-CLI PrestaShop", nos referiremos a esta consola de Symfony.
Para verificar que tienes acceso y la herramienta funciona, ejecuta el siguiente comando dentro de la carpeta de tu tienda:
php bin/console list
Este comando mostrará una lista de todos los comandos disponibles. Si ves la lista, ¡estás listo para empezar!
Primeros pasos: Comandos básicos de PrestaShop
Ahora que tienes acceso, vamos a explorar los comandos más útiles para la gestión diaria. Todos estos comandos se ejecutan desde la raíz de tu instalación de PrestaShop.
1. Limpiar la caché desde la terminal
Uno de los usos más comunes de la terminal es limpiar la caché. Esto es crucial después de modificar archivos de código, cambiar la configuración o actualizar módulos. A veces, la caché puede causar que veas una versión antigua de tu tienda o errores extraños.
El comando para limpiar la caché es:
php bin/console cache:clear
Este comando eliminará todos los archivos de caché y regenerará las referencias. Es el equivalente a pulsar el botón "Vaciar la caché" en el panel de administración, pero mucho más rápido y fiable.
[WARNING]: Si tu tienda está en modo de producción, es posible que necesites añadir la opción --env=prod al comando para que limpie la caché de producción. De lo contrario, solo limpiará la de desarrollo. El comando completo sería: php bin/console cache:clear --env=prod.
2. Activar y desactivar el modo de mantenimiento
Cuando necesitas realizar cambios importantes en tu tienda, es una buena práctica ponerla en modo de mantenimiento. Así, tus clientes verán un mensaje amigable en lugar de una tienda rota o a medio actualizar.
Para activar el modo de mantenimiento, usa:
php bin/console prestashop:maintenance --enable
Y para desactivarlo, cuando hayas terminado:
php bin/console prestashop:maintenance --disable
3. Obtener información de la tienda
¿Necesitas saber la versión exacta de PrestaShop que estás usando o la versión de PHP? Puedes obtener esta información rápidamente con:
php bin/console about
Este comando te mostrará un resumen con la versión de PrestaShop, la versión de Symfony, la versión de PHP y otra información útil del entorno.
Gestión de módulos y temas con comandos PrestaShop
La gestión de módulos es otra tarea que se puede automatizar y acelerar enormemente desde la terminal. Olvídate de buscar en el back-office, ahora puedes hacerlo todo con comandos.
Listar módulos instalados
Para ver todos los módulos que están instalados y activos en tu tienda, ejecuta:
php bin/console prestashop:module list
Este comando te dará una lista completa con los nombres técnicos de los módulos, su estado (activado/desactivado) y su versión. Esto es muy útil para identificar módulos problemáticos.
Activar y desactivar un módulo
Si un módulo está causando un error en tu tienda, puedes desactivarlo directamente desde la terminal. Primero, necesitas el nombre técnico del módulo (por ejemplo, ps_contactinfo).
Para desactivarlo:
php bin/console prestashop:module uninstall ps_contactinfo
[INFO]: Ten cuidado con este comando. uninstall desinstala el módulo por completo, lo que puede eliminar su configuración. Si solo quieres desactivarlo temporalmente, busca el comando prestashop:module disable. La sintaxis sería similar: php bin/console prestashop:module disable ps_contactinfo.
Para volver a activarlo o instalarlo:
php bin/console prestashop:module install ps_contactinfo
Actualizar un módulo desde la terminal
Actualizar módulos manualmente desde el back-office a veces falla por límites de memoria o tiempo de ejecución. La terminal es mucho más robusta para esto.
El comando para actualizar un módulo es:
php bin/console prestashop:module update ps_contactinfo
Este comando se encargará de descargar la nueva versión, instalarla y actualizar la base de datos si es necesario.
Gestión de la base de datos y copias de seguridad
La base de datos es el corazón de tu tienda. Gestionarla desde la terminal te da un control total y te permite realizar copias de seguridad de forma segura.
Realizar una copia de seguridad (dump)
Antes de realizar cualquier cambio importante, es imprescindible hacer una copia de seguridad. Puedes hacer un volcado de la base de datos MySQL directamente con el cliente de MySQL, pero PrestaShop también ofrece una herramienta.
Aunque PrestaShop no tiene un comando de backup directo en bin/console, puedes usar los comandos estándar de MySQL. Primero, necesitas tus credenciales de base de datos, que encontrarás en el archivo app/config/parameters.php.
mysqldump -u TU_USUARIO -p TU_BASE_DE_DATOS > backup.sql
Te pedirá la contraseña y creará un archivo backup.sql con todo el contenido de tu base de datos.
Restaurar una copia de seguridad
Para restaurar una copia de seguridad, usa el comando mysql:
mysql -u TU_USUARIO -p TU_BASE_DE_DATOS < backup.sql
[WARNING]: Este comando sobrescribirá los datos actuales de la base de datos con los del archivo de copia. Asegúrate de que es lo que quieres hacer y de que el archivo de copia es correcto.
Automatización y tareas con cron
La terminal es perfecta para automatizar tareas repetitivas mediante cron jobs. Puedes programar la limpieza de caché, la generación de informes o la actualización de módulos para que se ejecuten automáticamente en horarios de baja actividad.
Crear un cron job para limpiar la caché
Puedes crear un cron job que ejecute el comando de limpieza de caché todas las noches. En tu panel de control (Syspanel, por ejemplo), busca la sección "Cron Jobs" o "Tareas programadas".
El comando que deberías ejecutar sería algo así:
cd /ruta/a/tu/tienda && php bin/console cache:clear --env=prod
Ejemplo de cron para actualizar módulos
Si quieres que tus módulos se actualicen automáticamente cada semana, puedes programar un cron con el comando de actualización. Sin embargo, es más seguro hacerlo manualmente y revisar que todo funciona después de cada actualización.
Solución de problemas comunes con la terminal
La terminal es tu mejor aliada cuando tu tienda tiene problemas. Aquí tienes algunos escenarios comunes y cómo solucionarlos.
Error "500 Internal Server Error" al cargar la tienda
Si tu tienda muestra un error 500, puede deberse a un problema de permisos, un módulo corrupto o un error de PHP. Para ver el error real, puedes ejecutar el siguiente comando para ver los logs:
tail -f var/logs/prod.log
Este comando te mostrará las últimas líneas del log de producción en tiempo real. Ahí verás el error exacto que está ocurriendo, lo que te ayudará a diagnosticar el problema.
Problemas de memoria
Si ves errores de memoria, puedes aumentar el límite de memoria para los comandos de terminal. Puedes hacerlo con:
php -d memory_limit=512M bin/console cache:clear
Este comando ejecuta la limpieza de caché con un límite de memoria de 512 MB, lo que suele ser suficiente para la mayoría de las tareas.
¿Cómo actualizar PrestaShop desde la terminal?
PrestaShop no tiene un comando de actualización automática desde la terminal como lo tiene WP-CLI para WordPress. La actualización de la versión principal del software se suele hacer manualmente o con un script. Sin embargo, puedes usar la terminal para preparar el terreno:
- Poner la tienda en modo mantenimiento.
- Hacer una copia de seguridad de archivos y base de datos.
- Descargar la última versión de PrestaShop desde el sitio oficial.
- Reemplazar los archivos (excepto
config/,img/,themes/,modules/que hayas personalizado) manualmente o con comandosrsyncocp. - Ejecutar el instalador de actualización desde el navegador o mediante un script de consola si está disponible.
Preguntas frecuentes (FAQ) sobre WP-CLI PrestaShop
¿Es WP-CLI compatible con PrestaShop?
No, WP-CLI es específico para WordPress. PrestaShop utiliza su propia consola de comandos basada en Symfony, que se accede con php bin/console. Aunque a veces se le llama "WP-CLI PrestaShop" por similitud conceptual, son herramientas diferentes.
¿Puedo usar los mismos comandos de WordPress en PrestaShop?
No, los comandos son completamente diferentes. Los comandos de PrestaShop tienen el prefijo prestashop: (ej. prestashop:module list) y los de WordPress tienen prefijo wp (ej. wp plugin list).
¿Necesito ser un experto en Linux para usar estos comandos?
No, pero es recomendable tener conocimientos básicos de navegación por la terminal (cd, ls, pwd). Los comandos que te hemos mostrado son bastante directos y no requieren un profundo conocimiento de Linux.
¿Qué hago si bin/console no existe en mi instalación?
Si no tienes el archivo bin/console, es posible que tu versión de PrestaShop sea muy antigua (anterior a la 1.7) o que la instalación esté corrupta. En ese caso, tendrás que actualizar tu PrestaShop a una versión más reciente o contactar con tu proveedor de hosting.
¿Es seguro usar la terminal en mi hosting compartido?
Sí, es seguro si tienes cuidado. Asegúrate de no ejecutar comandos que no entiendas y de no modificar archivos que no sean de tu tienda. Siempre es buena idea probar los comandos en un entorno de desarrollo antes de aplicarlos en producción.
¿Puedo automatizar la copia de seguridad con un cron job?
¡Por supuesto! Puedes crear un cron job que ejecute el comando mysqldump y que mueva el archivo resultante a un directorio seguro. Por ejemplo:
mysqldump -u usuario -pclave mibase > /ruta/al/backup/backup_$(date +%Y%m%d).sql
Este comando creará una copia de seguridad con la fecha en el nombre del archivo.
¿Cómo puedo ver todos los comandos disponibles en PrestaShop?
Ejecuta php bin/console list para ver una lista completa de todos los comandos disponibles. También puedes obtener ayuda sobre un comando específico con php bin/console help nombre-del-comando.
¿Qué es Syspanel y cómo se relaciona con esto?
Syspanel (antes HestiaCP) es un panel de control de hosting que te permite gestionar tus sitios web, bases de datos, cuentas de correo y acceso SSH. El puerto de acceso a Syspanel es el 2106. Es la interfaz gráfica que te ayudará a configurar el acceso SSH y a gestionar los cron jobs que necesitas para automatizar los comandos de PrestaShop.
Conclusión y siguientes pasos
Aprender a usar la terminal para gestionar tu PrestaShop es una inversión de tiempo que te ahorrará muchos quebraderos de cabeza en el futuro. Te da un control total sobre tu tienda y te permite realizar tareas de mantenimiento de forma rápida y eficiente, incluso cuando el panel de administración no funciona correctamente.
Hemos cubierto los comandos más esenciales: limpiar caché, gestionar módulos, hacer copias de seguridad y solucionar problemas. Te animo a que practiques en un entorno de pruebas si es posible, para que te sientas cómodo con la sintaxis antes de usarla en tu tienda en producción.
Recuerda siempre:
- Realiza copias de seguridad antes de cualquier operación que modifique tu base de datos o archivos críticos.
- Empieza con comandos simples y ve aumentando la complejidad a medida que ganes confianza.
- Consulta la documentación oficial de PrestaShop para obtener una lista completa de comandos y opciones.
La terminal no es un enemigo, es una herramienta poderosa que te convertirá en un administrador de tiendas online mucho más competente. ¡Ánimo y a explorar!
