← Tillbaka till listan

Lokalt till moln: WordPress Migration Full Chain Solutions, Data Backup, Database Restoration, etc.

itadol5j

I. Bakgrund och kärnutmaningar

Migrationsscen

Lokal utvecklingsmiljölocalhost:8081Övrig organisatör 666.comDet handlar om containeriseringsutplacering (Docker) och tvärmiljömigration av databaser.

2. kärnfrågor

  • Första sidan hoppar ovanligtBesök 666.com Autojump för localhost:8081eftersom databasen innehåller gamla domännamn.
  • Data konsekvent riskDocker container data backas inte upp och migrationsprocessen kan förlora konfiguration eller plugin data.

II. Analys av grundorsakerna till problemet

  1. Databas gamla domännamn
    • wp_options Bord siteurl och home Fältet uppdateras inte.
    • Artiklar, metadata och sekvenserade data (t.ex. menyer, små verktyg) innehåller kodade gamla adresser.
  2. Docker Data Management Saknas
    • Underlåtenhet att anta en datavolym eller mysqldump Fullständig säkerhetskopia, direkthanteringsbehållare som resulterar i en oåterkallelig förlust av data.
  3. Server Configuration Interference
    • Omdirigeringsregler för den gamla miljön (t.ex. .htaccessInte cleared.

III. Full-chain lösningar

Fas 1: Docker Data Backup och migration

Backup MySQL Database Metod 1: Adoption mysqldump Exportera SQL-fil
# 导出数据库(容器内操作)  
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  
Metod 2: Backup MySQL Data Volym
# 备份数据卷(宿主机操作)  
docker run --rm -v mysql_data:/source -v /host/backup:/backup alpine tar czf /backup/mysql_data.tar.gz -C /source .  
Importera MySQL-databaser i produktionsmiljö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. Validering av dataintegritet
# 检查关键表数据  
docker exec prod-mysql-container mysql -uroot -p123456 -e "USE wordpress; SELECT COUNT(*) FROM wp_posts;"  

Fas II: Återställning av domännamnshopp

1. Säkerhetsbytesdatabas gamla domännamn Verktygsval och drift
  • BetterSearchReplace PluginFrån:
    1. Fullständig biblioteksersättning localhost:8081 Ja ja ja ja ja 666.comJag vet inte.
    2. Storlek Maximal Page för att 500batch bearbetning av stora tabeller.
  • Search-Replace-DB kommandorad verktygFrån:php srdb.cli.php -h localhost -u root -p 123456 -n wordpress -s "localhost:8081" -r "666.com" -g  
Force Update WordPress Configuration
// 在 wp-config.php 中定义绝对域名  
define('WP_HOME', 'https://666.com');  
define('WP_SITEURL', 'https://666.com');  
3. Rengöring av serverkonfigurationsrester
  • Ta bort gammal orienteringsregelFrån:# .htaccess 中删除旧规则
    RewriteRule ^(.*)$ https://localhost:8081/$1 [R=301,L] # 删除此行

Fas III: Certifiering och optimering

  1. Funktionsautentisering
    • Hemsidan Access:curl -I https://666.com Kontrollera statuskod 200 Inte inte 301/302Jag vet inte.
    • Kontrollerar slumpmässigt om artiklar, sidor, mediefiler URLs pekar på nya domännamn.
  2. Prestanda optimering
    • Konfigurera Redis eller Memcached cache databas fråga.
    • Användning docker system prune Klarar bilden av den ogiltiga behållaren.

Operativa risker och kringgående

Risk scenPrestandaRefusala åtgärder
Database Permission ConflictFörpackningsstart misslyckades, log hint nekasHarmonisera gruppen av användare av datarullarna före backup 999:999(MySQL standard)
Sekvenserad dataskadaSidlayout är förvirrad eller pluginfunktioner är onormalaAnvändning -g Parametrar för att bearbeta serialiserade data
Backup-fil ofullständigDen importerade klockans struktur saknasDubbelbackup (SQL + Datavolym) för att återställa MD5 Hash

V. Lärdomar och standardiseringsprocesser

Standardiserad migrationsprocess

  1. Lokal miljöbackupFrån:# 备份数据库 + 数据卷  
    docker exec mysql-container mysqldump -uroot -p123456 wordpress > backup.sql  
    docker volume inspect mysql_data > volume_backup.json  
  2. Förkonfiguration av produktionsmiljönFrån:
    • Skapar samma version av MySQL-behållaren i förväg, monterar datavolymen.
  3. Incremental Data SyncFrån:
    • Användning rsync Sync wp-content/uploads .

Exempel på automatiserade skript

#!/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  

Långvariga övervakningsmekanismer

  • Log MonitorFrån:docker logs -f prod-mysql-container | grep -E "ERROR|WARNING"  
  • HälsokontrollFrån:curl -s https://666.com/health-check | grep "OK"  

VI. Slutvärde

genom denna migrationspraxis, Containerization WordPress 4-stegsmetod.Från:

  1. Standardiserad backupSQL + Datavolym dubbelförsäkring.
  2. VerktygsrehabiliteringSäkerhetsersättningsdata i kombination med plugins och kommandoradsverktyg.
  3. Atom autentiseringFasade checksidor, API, medieresurser.
  4. Automatiserad övervakningLoggar, hälsokontroller, regelbundna återgångstest.

Detta alternativ kan ge en generisk mall för transport av containeriseringsapplikationer och minska tekniska tröskelvärden till följd av miljöskillnader.