Install
This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.
Install straight from GitHub with WP-CLI:
wp plugin install https://github.com/kombicl/kombi-backup/archive/refs/heads/main.zipPlugin de WordPress para respaldar el sitio completo (archivos y base de datos) en un solo .zip. Con el instalador se levanta en otro servidor y queda funcionando con la URL nueva. También restaura un respaldo sobre el sitio actual, por ejemplo para publicar una versión nueva preparada en local.
Herramientas → Kombi Backup.
Qué hace
| Función | Cómo |
|---|---|
| Respaldo completo | Todo lo que está bajo la carpeta de WordPress más las tablas con el prefijo del sitio. Avanza en pasos AJAX de 10 s (no choca con los timeouts del hosting) y se retoma si un paso se corta. |
| Instalar en otro servidor | Se sube kombi-installer.php y el .zip a una carpeta vacía y se abre en el navegador. El instalador pide la clave del respaldo y los datos de la base de datos. Extrae los archivos, importa la base y reemplaza la URL y la ruta antiguas por las nuevas, también dentro de datos serializados. Ajusta wp-config.php y .htaccess y se borra solo al terminar. |
| Restaurar aquí | Sirve para un respaldo de este sitio o uno subido desde otro. Se conservan wp-config.php, .htaccess y la URL de este sitio. Antes ofrece crear un respaldo de seguridad. El sitio muestra la página de mantenimiento mientras dura. |
| Subir respaldo | La subida va por trozos bajo el límite de upload_max_filesize, así que entran respaldos de varios GB. |
Formato del respaldo
Es un .zip estándar: se abre con cualquier descompresor.
kombi-backup/manifest.json URL, ruta, prefijo, versiones, hash de la clave del instalador
kombi-backup/database-001.sql volcado SQL (una sentencia por línea, partes de 32 MB)
wp-admin/ wp-includes/ wp-content/ …
- El ZIP lo escribe el propio plugin, solo con zlib (no necesita
ZipArchive). Se escribe solo anexando, con ZIP64 para más de 4 GB o más de 65.535 archivos. - Las imágenes, videos y otros formatos ya comprimidos se guardan sin volver a comprimir. Los archivos de más de 64 MB también.
- Se omiten
.git,node_modules, las cachés y las carpetas de otros plugins de respaldo. La lista se puede editar en la pantalla. - Los respaldos quedan en
wp-content/kombi-backups/, protegida por.htaccessyweb.config. Los nombres llevan un sufijo aleatorio y la metadata va en.phpconexit(por nginx). Se descargan solo a través del escritorio.
Seguridad del instalador
- Instalación nueva: pide la clave de 12 caracteres que muestra el plugin. El manifiesto solo guarda su hash.
- Restaurar: usa un token de un solo uso que vence en 1 hora, generado desde el escritorio.
- El estado, que incluye la contraseña de la base de datos, se guarda en un
.phpconexitdentro de una carpeta temporal bloqueada. - Al terminar borra el instalador, la carpeta temporal, el token y, si se marcó, el
.zip. Si una restauración queda a medias, el plugin borra el instalador abandonado al día siguiente.
Compatibilidad
- PHP 7.4+ con
zlibymysqli. WordPress 6.0+. - Si el servidor nuevo es MariaDB o MySQL 5.7, cambia las intercalaciones
utf8mb4_0900_*de MySQL 8. - Si
wp-config.phpcalculaWP_HOME/WP_SITEURL(por ejemplo, con una lista de hosts permitidos), el instalador los fija a la URL nueva. - Si
wp-config.phpestá un nivel arriba de la carpeta de WordPress, se incluye en el respaldo. - No copia el
.user.inini elphp.inidel servidor de origen.
Restaurar: qué se borra
Antes de tocar nada, el instalador verifica el CRC de todo el respaldo. Un .zip cortado o dañado se rechaza sin activar el mantenimiento ni escribir archivos.
Luego, en wp-admin, wp-includes y wp-content borra lo que no viene en el respaldo: plugins eliminados, archivos inyectados (por ejemplo, un .php en uploads). Nunca toca:
- lo que esté fuera de esas tres carpetas (en
public_htmlpuede haber otros sitios); - lo excluido del respaldo (cachés, respaldos de otros plugins);
wp-content/kombi-backups;- los enlaces simbólicos.
Limitaciones (v0.1)
- Multisitio: no soportado.
wp-contentfuera de la carpeta de WordPress (Bedrock y similares): se rechaza con un aviso.- Un archivo muy grande (varios GB) se procesa en un solo paso: en un hosting con un límite de tiempo de PHP corto podría no alcanzar.
- No cambia el prefijo de tablas al instalar.
- Durante una instalación nueva, el
.zipqueda en la carpeta pública hasta que termina. Su nombre lleva un sufijo aleatorio y el instalador no lo muestra antes de la clave, pero conviene no dejarlo ahí más de lo necesario.
Desarrollo
Probado de punta a punta en local con kombicl.test (6.214 archivos, 267 MB → ZIP de 170 MB en 90 s):
- Respaldo y luego instalación en una carpeta y una base nuevas, con otra URL: 0 URLs antiguas y 0 datos serializados inválidos.
- Restauración sobre ese sitio: se reemplazaron la base y los archivos, y se conservaron
wp-config.phpy la URL.