← Tilbage til listen

Lokal til sky: WordPress Migration Full Chain Solutions, Data Backup, Database Restaurering, osv.

itadol5j

I. Baggrund og centrale udfordringer

1. Migration scene

Lokaludviklingsmiljølocalhost:8081Andre arrangører 666.comDette indebærer containerisering implementering (Docker) og tværmiljømæssige migration af databaser.

2. Kernespørgsmål

  • Første side springer usædvanligt: besøg 666.com Autospring til localhost:8081fordi databasen indeholder gamle domænenavne.
  • Data konsistens risiko: Docker container data er ikke sikkerhedskopieret og migrationsprocessen kan miste konfiguration eller plugin data.

II. Analyse af årsagerne til problemet

  1. Database gammelt domænenavn
    • wp_options Tabel siteurl og home feltet er ikke opdateret.
    • Artikler, metadata og sekvenserede data (f.eks. menuer, små værktøjer) indeholder hardkodede gamle adresser.
  2. Dokker datahåndtering mangler
    • Manglende vedtagelse af en data volumen eller mysqldump Komplet backup, direkte håndtering containere resulterer i et uigenkaldeligt tab af data.
  3. Serverindstillingsinterferens
    • Redirect rules of the old environment (fx .htaccessIkke ryddet.

III. Full-chain-løsninger

Fase 1: Docker Data Backup og Migration

1. Backup MySQL database Metode 1: Vedtagelse mysqldump Eksportér 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  
Metode 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. Importer MySQL databaser i produktionsmiljøet
# 导入 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 af dataintegritet
# 检查关键表数据  
docker exec prod-mysql-container mysql -uroot -p123456 -e "USE wordpress; SELECT COUNT(*) FROM wp_posts;"  

Fase II: Genoprettelse af domænenavne

1. Sikkerhed udskiftning database gamle domænenavne Valg og drift af værktøj
  • Comment:
    1. Fuld biblioteksudskiftning localhost:8081 Ja 666.comDet ved jeg ikke.
    2. Ændr den maksimale side til 500, batch behandling af store borde.
  • Search- Erstat - DB kommandolinjeværktøj:php srdb.cli.php -h localhost -u root -p 123456 -n wordpress -s "localhost:8081" -r "666.com" -g  
2. Force Update WordPress konfiguration
// 在 wp-config.php 中定义绝对域名  
define('WP_HOME', 'https://666.com');  
define('WP_SITEURL', 'https://666.com');  
3. Oprydning af serverkonfigurationsrester
  • Fjern gamle orienteringsregel:# .htaccess 中删除旧规则
    RewriteRule ^(.*)$ https://localhost:8081/$1 [R=301,L] # 删除此行

Fase III: Certificering og optimering

  1. Funktionsgodkendelse
    • Adgang til hjemmesiden:curl -I https://666.com Kontrollér statuskode 200 Ikke 301/302Det ved jeg ikke.
    • Kontrollerer tilfældigt, om artikler, sider, mediefiler URL 'er peger på nye domænenavne.
  2. Præstationsoptimering
    • Indstil forespørgsel i Redis eller Memcached cache database.
    • Anvendelse docker system prune Rydder billedet af den ugyldige beholder.

Operationelle risici og omgåelse

RisikosituationResultaterAfslag
Database Tilladelse KonfliktOpstart af emballage mislykkedes, log antydning nægtetHarmonisere gruppen af brugere af data ruller før backup 999:999(MySQL- standard)
Sekventerede dataskaderSidelayout er forvirret eller plugin funktioner er unormaleAnvendelse -g Parametre til at behandle serialiserede data
Backup fil ufuldstændigStrukturen af den importerede ur manglerDobbelt Backup (SQL + Data Volume) til at gendanne MD5 Hash

V. Erfaringer og standardiseringsprocesser

1. Standardiseret migrationsproces

  1. Lokal miljøsikkerhedskopi:# 备份数据库 + 数据卷  
    docker exec mysql-container mysqldump -uroot -p123456 wordpress > backup.sql  
    docker volume inspect mysql_data > volume_backup.json  
  2. Præ- konfiguration af produktionsmiljøet:
    • Opretter den samme version af MySQL beholder på forhånd, monterer data volumen.
  3. Incremental Data Sync:
    • Anvendelse rsync Synkronisér wp-content/uploads .

2. Eksempel på automatiserede scripts

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

Langvarige overvågningsmekanismer

  • Logovervågning:docker logs -f prod-mysql-container | grep -E "ERROR|WARNING"  
  • Sundhedsmæssig screening:curl -s https://666.com/health-check | grep "OK"  

VI. Endelig værdi

Gennem denne migrationspraksis, "Containerization WordPress 4-trins metode".:

  1. Standardiseret sikkerhedskopi: SQL + Data Volume Dobbelt Forsikring.
  2. Redskabsrehabilitering: Sikkerhedsdata kombineret med plugins og kommandolinjeværktøjer.
  3. AtomautentificeringFaset tjek sider, API, medier ressourcer.
  4. Automatisk overvågningLogs, sundhedstjek, regelmæssige rollback tests.

Denne mulighed kunne give en generisk skabelon for transport af containeriseringsapplikationer og reducere tekniske tærskler som følge af miljøforskelle.