WordPress
Sitios WordPress nativos con PHP-FPM y MySQL propios, HTTPS, copias, staging, migración y edición completa por MCP.
- Categoría: Servidores e infraestructura
- Estado: Disponible
- Requisitos: Un VPS activo con la función
wordpressdisponible; Al menos 256 MB de RAM y 1 GB de disco libres; Para un dominio propio: que su DNS apunte al VPS - Herramientas MCP (Solo leen):
listar_sitios_wordpress,ver_sitio_wordpress,leer_logs_wordpress,ver_web_wordpress,listar_backups_wordpress - Herramientas MCP (Escriben o modifican):
instalar_app,probar_web_wordpress,controlar_cache_wordpress,crear_backup_wordpress,crear_staging_wordpress,cambiar_direccion_wordpress,revelar_credencial_app,controlar_app - Herramientas MCP (Destructivas):
editar_contenido_wordpress,editar_menus_wordpress,editar_medios_wordpress,configurar_sitio_wordpress,controlar_extensiones_wordpress,editar_usuarios_wordpress,editar_seo_wordpress,editar_archivos_wordpress,ejecutar_wp_cli_wordpress,consultar_base_wordpress,controlar_cron_wordpress,configurar_correo_wordpress,editar_integraciones_wordpress,eliminar_backup_wordpress,restaurar_backup_wordpress,desinstalar_app
¿Qué permite hacer?
Cada sitio WordPress es una app: corre de forma nativa (sin Docker) con su usuario de Linux, su pool de PHP-FPM y su base en el MySQL del VPS. En un mismo VPS pueden convivir varios sitios aislados entre sí.
- Crear un sitio vacío, una tienda (WooCommerce) o un sitio con Elementor.
- Traer un sitio desde un backup de otro hosting (All-in-One, Duplicator, UpdraftPlus o un panel de hosting).
- Publicarlo con HTTPS en una dirección automática o un dominio propio, y cambiarla después.
- Hacer copias, restaurarlas, crear un staging y publicarlo.
- Actualizar núcleo, base, plugins y temas.
- Editar contenido, menús, medios, ajustes, plugins, usuarios, SEO, archivos, cron, caché, correo e integraciones, desde el panel o por MCP.
¿Cuándo conviene usarlo?
- Sitios institucionales, blogs o tiendas que se quieren tener en un servidor propio.
- Mudar un WordPress desde otro hosting sin tocar archivos a mano.
- Que un agente de IA mantenga el sitio: contenido, plugins, pruebas en un navegador real.
¿Cómo funciona en ArduMaker?
validar: VPS activo, funciónwordpressdel sistema, memoria y disco mínimos.preparar: PHP 8.3 con PHP-FPM y las extensiones de WordPress, y wp-cli (una vez por VPS, comprobado contra el.sha512publicado); el motor MySQL se instala si falta.instalar: se guardan antes las claves (la del admin y la de la base); se crean la basewp<id>y la cuenta'wp<id>'@'localhost', el usuario de Linux, las carpetas, el pool y el cron; se baja el núcleo, se escribewp-config.phpy se instala con una URL provisoria.configurar: si se pidieronextras, se instalan WooCommerce y/o Elementor.publicar: se reserva la dirección, se escribe el server block en el nginx del VPS, el sitio pasa ahttps://<dominio>conwp search-replacey se publica con DNS, proxy y HTTPS. Se verifica/wp-login.phpcon 200.
Si publicar falla, el sitio queda instalado y el reintento vuelve a publicar sin reinstalar. El TLS lo pone la plataforma delante del VPS; el nginx del VPS le pasa HTTPS on a PHP para que WordPress no entre en un bucle de redirecciones al abrir /wp-admin.
Ningún campo es obligatorio: site_title (por defecto «Mi sitio»), admin_email (por defecto el de quien instala), admin_user (3 a 40 caracteres; no se aceptan admin, administrator, root ni wordpress), locale (por defecto es_ES), custom_domain, extras y origen (para traer un backup o copiar otro sitio).
¿Qué cambia realmente?
| Qué | Dónde / cómo |
|---|---|
| Archivos del sitio | /srv/wordpress/wp<id>/public |
| Copias | /srv/wordpress/wp<id>/backups/, fuera de la carpeta pública |
| Usuario de Linux | wp<id>, de sistema, sin login |
| PHP | Pool wp<id> con socket propio, pm = ondemand y open_basedir en su carpeta |
| Base | wp<id> en MySQL, cuenta 'wp<id>'@'localhost' (solo por socket) |
| Cron | wp<id>-cron.timer corre los eventos vencidos cada 5 minutos |
| Web | Server block del dominio en el nginx del VPS |
Con pm = ondemand un sitio sin visitas no gasta memoria, por eso entran varios en un plan chico. Un sitio no puede leer los archivos PHP de otro.
Copias, staging y migración
crear_backup_wordpress: copia completa (base ywp-content) en un.tar.gzfuera de la carpeta pública.restaurar_backup_wordpresscon exactamente un origen:backup(una copia del sitio: vuelta atrás),url(un archivo que baja el VPS: copia de ArduMaker.tar.gz, All-in-One.wpress, Duplicator.zip, UpdraftPlus o.tar.gzde un panel de hosting) ofrom_app(otro sitio del mismo VPS). Después de cargar, el sitio vuelve a su propia dirección.crear_staging_wordpress: un sitio nuevo en el mismo VPS, cargado con una copia y con su propia dirección. Se publica restaurando el sitio en vivo confrom_appigual al staging.- Al importar un backup se vuelve a crear el admin de ArduMaker con su contraseña: el backup trae sus propios usuarios.
cambiar_direccion_wordpressdespublica la dirección vieja (DNS, proxy y server block), publica la nueva con HTTPS y reescribe todas las URL del sitio.
Actualizar y desinstalar
La acción update (controlar_app) deja al día núcleo, base, plugins y temas, y antes asegura PHP 8.3 y el pool del sitio. Desinstalar saca el pool y el cron; con delete_data también borra archivos, base y contraseñas.
Esquema
- Internet: HTTPS en
wordpress-<id>o un dominio propio - Plataforma: termina TLS y lleva al VPS
- nginx del VPS: server block del sitio,
HTTPS on - PHP-FPM pool `wp<id>`: como el usuario
wp<id> - MySQL: base
wp<id>por socket
Resultado esperado
El sitio aparece en Apps y en listar_sitios_wordpress con su dirección y sus extras. revelar_credencial_app devuelve el usuario y la contraseña de /wp-admin; la contraseña de la base nunca sale: solo la usa wp-config.php. ver_sitio_wordpress con view: salud muestra la respuesta HTTP, el pool de PHP, actualizaciones pendientes y cron atrasado.
Errores y resolución
| Error | Causa | ¿Reintentar? |
|---|---|---|
php_no_instalado | No se pudo preparar PHP-FPM | Sí |
base_ya_existe | Ya hay una base wp<id> que no creó este sitio; no se toca | No |
base_no_creada / wordpress_no_instalado | Falló la base o la instalación del núcleo | Sí |
nginx_no_configurado / wordpress_url_no_cambiada | Falló el server block o el cambio de URL al publicar | Sí, sin reinstalar |
backup_incompleto / backup_no_importado | El backup subido no llegó entero o no se pudo importar | Sí, tras reenviarlo |
wordpress_copia_fallida / wordpress_restauracion_fallida | Falló la copia o la restauración | Sí |
wordpress_comando_fallido (422) | wp-cli salió con error; la salida recortada dice por qué | Corrigiendo el pedido |
Para diagnosticar: leer_logs_wordpress (PHP-FPM, debug.log, errores o accesos de nginx), ver_web_wordpress (estado, HTML, enlaces o formularios de una ruta) y probar_web_wordpress, que abre el sitio en un navegador real dentro del VPS y devuelve una captura, el texto visible y los errores de consola.
Relación con MCP
WordPress tiene su propio dominio MCP, /mcp/wordpress (referencia general en /mcp/docs). Todo corre en el VPS con wp-cli como el usuario del sitio. Hay tres niveles: ver (quien ve la app), cambiar (además, no ser un agente solo lectura) y delicado (base de datos, archivos, restaurar, wp-cli libre, borrar usuarios: admin de la empresa).
| Tipo | Herramientas |
|---|---|
| Lectura | listar_sitios_wordpress, ver_sitio_wordpress, leer_logs_wordpress, ver_web_wordpress, listar_backups_wordpress |
| Contenido y sitio | editar_contenido_wordpress, editar_menus_wordpress, editar_medios_wordpress, configurar_sitio_wordpress, controlar_extensiones_wordpress, editar_usuarios_wordpress, editar_seo_wordpress |
| Servidor | editar_archivos_wordpress, ejecutar_wp_cli_wordpress, consultar_base_wordpress, controlar_cron_wordpress, controlar_cache_wordpress, configurar_correo_wordpress, editar_integraciones_wordpress, probar_web_wordpress |
| Copias y dirección | crear_backup_wordpress, crear_staging_wordpress, cambiar_direccion_wordpress |
| Destructivas | restaurar_backup_wordpress, eliminar_backup_wordpress, desinstalar_app |
- Se crea con
instalar_app(app_type: wordpress); la credencial de/wp-adminsale conrevelar_credencial_app(solo admin). ejecutar_wp_cli_wordpressrechazaeval,eval-file,shell,package,serverycli, y las opciones--execy--require.editar_archivos_wordpresstrabaja solo dentro dewp-contenty nunca tocawp-config.php; un.phpse revisa conphp -lantes de reemplazarlo.consultar_base_wordpresscorre lecturas tal cual; cualquier escritura necesitaconfirmed.- El usuario admin de ArduMaker en el sitio no se puede borrar ni degradar.