Local a la nube: WordPress Migración Soluciones de cadena completa, respaldo de datos, restauración de bases de datos, etc.
I. Antecedentes y desafíos básicos
1. La escena migratoria
Medio ambiente de desarrollo locallocalhost:8081Otros organizadores 666.comEsto implica el despliegue de contenedores (Docker) y la migración interambiental de bases de datos.
2. Cuestiones básicas
- Primera página Saltar inusual: visitas
666.comAutojump alocalhost:8081porque la base de datos contiene nombres de dominio antiguos. - Riesgo de coherencia de los datos: Los datos de contenedores Docker no están respaldados y el proceso de migración puede perder datos de configuración o plugin.
II. Análisis de las causas profundas del problema
- Nombre de dominio antiguo de base
wp_optionsCuadrositeurlyhomecampo no se actualiza.- Los artículos, metadatos y datos secuenciados (por ejemplo, menús, herramientas pequeñas) contienen direcciones antiguas codificadas.
- Falta de gestión de datos de Docker
- No adoptar un volumen de datos o
mysqldumpCopia de seguridad completa, contenedores de manipulación directa que dan lugar a una pérdida irreversible de datos.
- No adoptar un volumen de datos o
- Interferencia de configuración del servidor
- Reglas redirectivas del viejo ambiente (por ejemplo,
.htaccessNo está claro.
- Reglas redirectivas del viejo ambiente (por ejemplo,
III. Soluciones de cadena completa
Fase 1: Docker Data Backup and Migration
1. Backup MySQL Database Método 1: Adopciónmysqldump Exportar archivo SQL
# 导出数据库(容器内操作)
docker exec dockerwordpress-db-1 mysqldump -uroot -p123456 --hex-blob --default-character-set=utf8mb4 wordpress > /tmp/backup.sql
# 复制到宿主机
docker cp dockerwordpress-db-1:/tmp/backup.sql /host/backup.sql
Método 2: Backup MySQL Data Volume
# 备份数据卷(宿主机操作)
docker run --rm -v mysql_data:/source -v /host/backup:/backup alpine tar czf /backup/mysql_data.tar.gz -C /source .
2. Importar bases de datos MySQL en el entorno de producción
# 导入 SQL 文件(生产环境容器)
docker cp /host/backup.sql prod-mysql-container:/tmp/backup.sql
docker exec -i prod-mysql-container mysql -uroot -p123456 wordpress < /tmp/backup.sql
# 或从数据卷恢复
docker run --rm -v prod_mysql_data:/target -v /host/backup:/backup alpine tar xzf /backup/mysql_data.tar.gz -C /target
3. Validación de la integridad de los datos
# 检查关键表数据
docker exec prod-mysql-container mysql -uroot -p123456 -e "USE wordpress; SELECT COUNT(*) FROM wp_posts;"
Fase II: restauración de saltos de nombre de dominio
1. Nombres de dominio antiguos de la base de datos de reemplazo de seguridad Selección y operación de herramientas- BetterSearchReplace Plugin:
- Sustitución de biblioteca completa
localhost:8081Sí.666.comNo lo sé. - Resize Maximum Page to
500, procesamiento por lotes de mesas grandes.
- Sustitución de biblioteca completa
- Herramienta de línea de comando Search-Replace-DB:
php srdb.cli.php -h localhost -u root -p 123456 -n wordpress -s "localhost:8081" -r "666.com" -g
// 在 wp-config.php 中定义绝对域名
define('WP_HOME', 'https://666.com');
define('WP_SITEURL', 'https://666.com');
3. Limpieza de residuos de configuración del servidor
- Quitar la vieja norma de orientación:
# .htaccess 中删除旧规则
RewriteRule ^(.*)$ https://localhost:8081/$1 [R=301,L] # 删除此行
Fase III: Certificación y optimización
- Función Autenticación
- Acceso a la página principal:
curl -I https://666.comCódigo de estado de verificación200No301/302No lo sé. - Comprueba aleatoriamente si artículos, páginas, URLs de archivos multimedia apuntan a nuevos nombres de dominio.
- Acceso a la página principal:
- Optimización del rendimiento
- Configure la consulta de la base de datos Redis o Memcached cache.
- Uso
docker system pruneLimpia la imagen del contenedor inválido.
Riesgos operacionales y circunvención
| Situación de riesgo | Ejecución | Medidas de referencia |
|---|---|---|
| Conflicto por emisión de bases de datos | Empaquetado de arranque falló, pista de registro negada | Armonizar el grupo de usuarios de los desplazamientos de datos antes de la copia de seguridad 999:999(MySQL Default) |
| Daños resultantes de datos | Diseño de página es confundido o funciones de plugin son anormales | Uso -g Parámetros para procesar datos serializados |
| Archivo de respaldo incompleto | Falta la estructura del reloj importado | Doble respaldo (SQL + volumen de datos) para restaurar MD5 Hash |
V. Lecciones adquiridas y procesos de normalización
1. Proceso normalizado de migración
- Local Environment Backup:
# 备份数据库 + 数据卷
docker exec mysql-container mysqldump -uroot -p123456 wordpress > backup.sql
docker volume inspect mysql_data > volume_backup.json - Preconfiguración del entorno de producción:
- Crea la misma versión del contenedor MySQL con antelación, monta el volumen de datos.
- Incremental Data Sync:
- Uso
rsyncSyncwp-content/uploads.
- Uso
2. Ejemplo de scripts automatizados
#!/bin/bash
# 备份脚本
docker exec mysql-container mysqldump -uroot -p123456 wordpress > /backups/wordpress_$(date +%Y%m%d).sql
tar -czf /backups/mysql_data_$(date +%Y%m%d).tar.gz /var/lib/docker/volumes/mysql_data
# 恢复脚本
docker cp /backups/wordpress_20231001.sql prod-mysql-container:/tmp/
docker exec -i prod-mysql-container mysql -uroot -p123456 wordpress < /tmp/wordpress_20231001.sql
Mecanismos de vigilancia duraderos
- Monitor de registro:
docker logs -f prod-mysql-container | grep -E "ERROR|WARNING" - Examen de la salud:
curl -s https://666.com/health-check | grep "OK"
VI. Valor final
Mediante esta práctica migratoria, "Containerization WordPress método de 4 pasos.":
- Copia de seguridad estandarizada: SQL + Seguro Doble Volumen de Datos.
- Rehabilitación de instrumentos: Datos de reemplazo de seguridad combinados con plugins y herramientas de línea de comandos.
- autenticación atómicaPáginas de comprobación graduales, API, recursos multimedia.
- Supervisión automatizadaRegistros, cheques de salud, pruebas regulares.
Esta opción podría proporcionar una plantilla genérica para el transporte de aplicaciones de contenedorización y reducir los umbrales técnicos resultantes de diferencias ambientales.