Cómo usar WP-CLI para gestionar WordPress desde la terminal (SysAdmin)
¿Cansado de hacer clics y más clics en el panel de administración de WordPress para tareas repetitivas? ¿Te gustaría actualizar plugins, gestionar usuarios o limpiar la caché con un solo comando? Si eres administrador de sistemas (SysAdmin) o simplemente quieres llevar tu gestión de WordPress al siguiente nivel, WP-CLI es la herramienta que estabas buscando.
WP-CLI es la interfaz de línea de comandos oficial para WordPress. Te permite gestionar WordPress terminal de forma rápida, segura y automatizable, sin necesidad de usar el navegador. Olvídate de los tiempos de carga lentos del panel y de los errores de timeout. Con WP-CLI, el control total está en tus manos, directamente desde la shell de tu servidor Linux.
En esta guía extensa y práctica, vamos a desglosar desde la instalación hasta los comandos más avanzados, con un enfoque claro para que cualquier persona, incluso sin experiencia previa en terminales, pueda seguirlo. Prepárate para convertirte en un experto en WP-CLI SysAdmin.
¿Qué es WP-CLI y por qué deberías usarlo?
WP-CLI es una herramienta de código abierto que te permite administrar instalaciones de WordPress mediante comandos de texto. En lugar de navegar por menús y submenús, escribes una línea de texto y la acción se ejecuta al instante.
Piénsalo así: mientras que el panel de administración es como un coche con transmisión automática, WP-CLI es la transmisión manual. Te da más control, es más eficiente y te permite realizar maniobras precisas que de otra forma serían complicadas.
Beneficios clave para un SysAdmin:
- Velocidad: Las operaciones se ejecutan en milisegundos. Actualizar 20 plugins ya no es una tarea de 15 minutos, sino de 5 segundos.
- Automatización: Puedes crear scripts (bash, Python, etc.) que ejecuten tareas de mantenimiento de forma periódica y desatendida.
- Gestión remota: Si tienes acceso SSH a tu servidor, puedes gestionar múltiples sitios WordPress desde una sola sesión de terminal.
- Seguridad: Al no depender del navegador, reduces la superficie de ataque y evitas errores comunes de tiempo de ejecución (memory limit, max execution time).
- Diagnóstico: Es mucho más fácil identificar errores y problemas de configuración mediante la salida de texto de los comandos.
Requisitos previos: Preparando tu servidor
Antes de empezar, asegúrate de cumplir con los siguientes requisitos:
- Acceso SSH a tu servidor: Necesitas poder conectarte a tu VPS o servidor dedicado mediante SSH. Si usas un panel como cPanel o Syspanel, el acceso SSH suele estar disponible.
- PHP en línea de comandos (CLI): WP-CLI necesita PHP instalado en el servidor. Verifica que la versión de PHP sea compatible con tu versión de WordPress (PHP 7.4 o superior es lo recomendado).
- Acceso de escritura: El usuario con el que te conectas por SSH debe tener permisos de escritura sobre los archivos de WordPress.
Instalación de WP-CLI: Paso a paso
La instalación es sorprendentemente sencilla. Solo necesitas descargar el archivo wp-cli.phar (un archivo PHP ejecutable), hacerlo ejecutable y moverlo a tu ruta de binarios.
Sigue estos pasos:
-
Conéctate a tu servidor por SSH.
-
Descarga WP-CLI usando
curlowget. Te recomiendo la versión estable:curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.pharNota: Si no tienes curl, usa
wget https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -
Verifica que el archivo se descargó correctamente ejecutando el siguiente comando con PHP:
php wp-cli.phar --versionDeberías ver algo como:
WP-CLI 2.11.0. -
Hazlo ejecutable y muévelo a un directorio que esté en tu
PATH(por ejemplo,/usr/local/bin):chmod +x wp-cli.phar sudo mv wp-cli.phar /usr/local/bin/wp -
Prueba la instalación global:
wp --infoSi ves información sobre la versión de PHP y la ruta de WordPress, ¡la instalación fue exitosa!
[TIP] Si tu usuario no tiene permisos de
sudo, puedes mover el archivo a~/biny añadir esa ruta a tu variable de entornoPATH.
Comandos WP-CLI esenciales para tu día a día
Ahora que ya tienes WP-CLI instalado, vamos a explorar los comandos más útiles. La sintaxis general es: wp [comando] [subcomando] [argumentos].
1. Navegación y estado del sitio
wp --info: Muestra información sobre el entorno de WP-CLI y la instalación de WordPress.wp core version: Te dice la versión exacta de WordPress que tienes instalada.wp core is-installed: Verifica si WordPress está correctamente instalado en el directorio actual.
2. Actualizar WordPress CLI y sus componentes
Esta es una de las tareas más críticas para un SysAdmin. Mantener todo actualizado es vital para la seguridad.
-
Actualizar el núcleo de WordPress:
wp core updateEste comando actualizará WordPress a la última versión estable. Si quieres actualizar a una versión específica, usa
wp core update --version=X.X.X. -
Actualizar todos los plugins:
wp plugin update --allPuedes actualizar un plugin específico con
wp plugin update nombre-del-plugin. -
Actualizar todos los temas:
wp theme update --all -
Actualizar la base de datos (si es necesario):
Después de una actualización del núcleo, a veces es necesario actualizar la estructura de la base de datos. El comando es:
wp core update-db
[WARNING] IMPORTANTE: Antes de ejecutar cualquier comando de actualización, siempre haz una copia de seguridad completa de tu sitio (archivos y base de datos). Un comando mal ejecutado puede causar daños irreparables. La seguridad ante todo.
3. Gestión de Plugins y Temas
-
Listar plugins instalados:
wp plugin listVerás una tabla con el estado (activo, inactivo) y la versión de cada plugin.
-
Activar/Desactivar un plugin:
wp plugin activate nombre-del-plugin wp plugin deactivate nombre-del-plugin -
Instalar un plugin desde el repositorio de WordPress.org:
wp plugin install nombre-del-plugin -
Eliminar un plugin (después de desactivarlo):
wp plugin delete nombre-del-plugin -
Para temas, la lógica es la misma, solo cambia
pluginportheme:wp theme list wp theme activate nombre-del-tema wp theme install nombre-del-tema
4. Gestión de Usuarios
-
Crear un nuevo usuario administrador:
wp user create nuevo-usuario email@ejemplo.com --role=administrator --user_pass=ContraseñaSegura -
Cambiar la contraseña de un usuario existente:
wp user update nombre-usuario --user_pass=NuevaContraseña -
Listar todos los usuarios:
wp user list -
Eliminar un usuario:
wp user delete nombre-usuario
[TIP] Puedes usar
--reassign=otro-usuarioal eliminar para asignar su contenido a otro usuario.
5. Optimización y Mantenimiento
-
Limpiar la caché de WordPress (si usas un plugin de caché):
No hay un comando nativo, pero si usas WP Super Cache, puedes usar:
wp super-cache flush -
Optimizar la base de datos (si usas WP-Optimize):
wp optimize optimize -
Revisar la salud del sitio (health-check):
wp site health check -
Programar eventos (cron jobs):
wp cron event list wp cron event run --due-now
6. Búsqueda y Reemplazo (¡Útil para migraciones!)
Este es un comando muy potente y peligroso. Se usa para reemplazar URLs o cualquier texto en la base de datos.
wp search-replace 'http://old-url.com' 'https://new-url.com' --dry-run
--dry-run: Es crítico. Ejecuta el comando en modo de prueba para que veas cuántos reemplazos se harán sin modificar nada. Siempre úsalo primero.
[WARNING] ¡MUCHO CUIDADO!
wp search-replacepuede corromper tu base de datos si no se usa correctamente. Nunca lo ejecutes sin antes hacer una copia de seguridad y usar--dry-run.
7. Gestión de la Base de Datos
-
Crear una copia de seguridad de la base de datos:
wp db export backup.sql -
Importar una base de datos:
wp db import backup.sql -
Optimizar la base de datos (comando nativo):
wp db optimize -
Reparar la base de datos:
wp db repair
WP-CLI y Syspanel (HestiaCP): Una combinación perfecta
Si tu servidor usa el panel de control Syspanel (antes conocido como HestiaCP), la integración con WP-CLI es excelente. Recuerda que el acceso a Syspanel se realiza a través del puerto 2106 (ej. https://tu-dominio.com:2106).
¿Cómo se relaciona WP-CLI con Syspanel?
- Usuarios del sistema: Los sitios web en Syspanel se ejecutan bajo un usuario del sistema (ej.
admin). Para usar WP-CLI, debes conectarte por SSH como ese usuario o usarsudo -u nombre_usuariopara ejecutar los comandos WP-CLI en el directorio de ese sitio. - Rutas de instalación: En Syspanel, los sitios suelen estar en
/home/nombre_usuario/web/nombre_del_sitio/public_html. Debes navegar a esa ruta para ejecutar los comandoswp. - Entorno PHP: Syspanel te permite cambiar la versión de PHP por sitio. Asegúrate de que la versión de PHP CLI que usa WP-CLI coincida con la del sitio. Puedes verificar esto con
wp --info.
Ejemplo práctico con Syspanel:
Imagina que quieres actualizar todos los plugins de un sitio alojado en Syspanel.
- Conéctate por SSH al servidor.
- Cambia al usuario del sitio:
su - nombre_usuario - Navega al directorio del sitio:
cd /home/nombre_usuario/web/miweb.com/public_html - Ejecuta el comando:
wp plugin update --all
[INFO] Si tienes problemas de permisos, asegúrate de que el usuario del sistema (el de Syspanel) es el propietario de los archivos de WordPress. Puedes verificar esto con
ls -lay cambiar el propietario conchown -R nombre_usuario:nombre_usuario /home/nombre_usuario/web/.
Automatización: Creando un script de mantenimiento
La verdadera magia de WP-CLI para un SysAdmin es la automatización. Puedes crear un script bash que ejecute tareas de mantenimiento y lo programes con cron.
Aquí tienes un ejemplo de script que hace una copia de seguridad y actualiza todo:
#!/bin/bash
# Configuración
SITIO="/home/usuario/web/miweb.com/public_html"
BACKUP_DIR="/home/usuario/backups"
FECHA=$(date +%Y%m%d)
# Navegar al sitio
cd $SITIO
# 1. Copia de seguridad de la base de datos
wp db export $BACKUP_DIR/db-$FECHA.sql
# 2. Copia de seguridad de los archivos (con tar)
tar -czf $BACKUP_DIR/files-$FECHA.tar.gz .
# 3. Actualizar el núcleo
wp core update
# 4. Actualizar plugins
wp plugin update --all
# 5. Actualizar temas
wp theme update --all
# 6. Limpiar la caché de WP-CLI (si existe)
wp cache flush
echo "Mantenimiento completado con éxito en $FECHA"
Guarda este script como mantenimiento.sh, dale permisos de ejecución (chmod +x mantenimiento.sh) y añádelo al cron con crontab -e:
0 3 * * 0 /home/usuario/mantenimiento.sh > /home/usuario/mantenimiento.log 2>&1
Este cron ejecutará el script todos los domingos a las 3:00 AM.
Resolución de problemas comunes (FAQ)
1. Obtengo el error "Error: YIKES! The site you were looking for doesn't exist, but we have plenty of others."
Este error suele ocurrir cuando WP-CLI no puede encontrar el archivo wp-config.php. Asegúrate de estar en el directorio correcto del sitio web (donde está el wp-config.php). También puede ser un problema de permisos; verifica que el usuario actual tiene acceso de lectura al archivo.
2. "Error: The password you entered for the database does not work."
Esto indica que las credenciales de la base de datos en wp-config.php son incorrectas o que el usuario de la base de datos no tiene permisos sobre la base de datos. Revisa el archivo wp-config.php.
3. "Error: Maximum execution time of 30 seconds exceeded."
Este es un error común de PHP. Puedes aumentarlo temporalmente ejecutando:
wp config set max_execution_time 300 --type=constant
Pero es mejor resolver la causa raíz (por ejemplo, un plugin lento).
4. ¿Cómo puedo ver los logs de error de WordPress?
Puedes activar el modo de depuración de WordPress con:
wp config set WP_DEBUG true --raw
Y ver los logs en wp-content/debug.log.
5. ¿Es seguro usar WP-CLI en producción?
Sí, es seguro si sigues las mejores prácticas: hacer copias de seguridad, usar --dry-run para comandos destructivos y probar en un entorno de staging si es posible. Es una herramienta estándar de la industria.
Conclusión: Domina tu WordPress desde la terminal
WP-CLI es una herramienta indispensable para cualquier administrador de sistemas que gestione WordPress. No solo te ahorra tiempo, sino que te da un nivel de control y automatización que es imposible de lograr solo con el panel de administración.
Desde actualizar WordPress CLI y sus componentes hasta gestionar usuarios y bases de datos, los comandos WP-CLI son la clave para una gestión eficiente y profesional. Al dominar esta herramienta, te convertirás en un SysAdmin mucho más valioso y podrás manejar múltiples sitios con una facilidad asombrosa.
Te animo a que empieces a practicar en un entorno local o de pruebas. La curva de aprendizaje es corta y los beneficios son enormes. Una vez que pruebes la velocidad y el control de gestionar WordPress terminal, no querrás volver atrás.
¡Ahora es tu turno! Conecta por SSH, instala WP-CLI y empieza a ejecutar tus primeros comandos. Verás que en poco tiempo te preguntarás cómo pudiste trabajar sin él.
¿Tienes alguna duda o truco con WP-CLI que quieras compartir? Déjanos un comentario. ¡Estamos aquí para ayudarte en tu camino para convertirte en un experto SysAdmin!
