← Обратно към списъка

Local to cloud: WordPress миграция Пълна верига решения, архивиране на данни, възстановяване на база данни и др.

itadol5j

I. Фонови и основни предизвикателства

1. Миграционна сцена

Среда за местно развитиеlocalhost:8081Друг организатор 666.comТова включва разполагане на контейнери (Docker) и междуекологична миграция на бази данни.

2. Основни проблеми

  • Първа страница скачане необичайно: посещения 666.com Автоматично скок към localhost:8081защото базата данни съдържа стари имена на домейни.
  • Риск от консистенция на данните: Данни Docker контейнер не са подкрепени и процеса на миграция може да загуби конфигурация или плъгин данни.

II. Анализ на основните причини за проблема

  1. Име на база данни
    • wp_options Таблица siteurl както и home полето не се актуализира.
    • Членове, метаданни и секвенирани данни (напр. менюта, малки инструменти) съдържат трудно кодирани стари адреси.
  2. Липсване на Docker Data Management
    • Неспазване на обема на данните или mysqldump Пълно архивиране, директно управление на контейнери, което води до необратима загуба на данни.
  3. Интерференция на настройките на сървъра
    • Пренасочващи правила на старата среда (напр. .htaccessНе е ясно.

III. Разтвори с пълна верига

Фаза 1: Docker Data архивиране и миграция

1. Резервна база данни MySQL Метод 1: Приемане mysqldump Експортиране на 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  
Метод 2: Backup MySQL обем данни
# 备份数据卷(宿主机操作)  
docker run --rm -v mysql_data:/source -v /host/backup:/backup alpine tar czf /backup/mysql_data.tar.gz -C /source .  
2. Импортиране на MySQL бази данни в производствената среда
# 导入 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. Утвърждаване на целостта на данните
# 检查关键表数据  
docker exec prod-mysql-container mysql -uroot -p123456 -e "USE wordpress; SELECT COUNT(*) FROM wp_posts;"  

Фаза II: възстановяване на имена на домейн скокове

1. Заместваща база данни за сигурност стари имена на домейн Избор и експлоатация на инструменти
  • По-добро търсене:
    1. Пълна подмяна на библиотеката localhost:8081 Да. 666.comНе знам.
    2. Преоразмеряване на максималната страница 500, преработка на големи маси.
  • Инструмент за команден ред Search-Replace-DB:php srdb.cli.php -h localhost -u root -p 123456 -n wordpress -s "localhost:8081" -r "666.com" -g  
2. Сила обновяване WordPress конфигурация
// 在 wp-config.php 中定义绝对域名  
define('WP_HOME', 'https://666.com');  
define('WP_SITEURL', 'https://666.com');  
3. Почистване на остатъците от конфигурацията на сървъра
  • Премахване на старо правило за ориентация:# .htaccess 中删除旧规则
    RewriteRule ^(.*)$ https://localhost:8081/$1 [R=301,L] # 删除此行

Фаза III: Сертифициране и оптимизиране

  1. Идентификация на функцията
    • Достъп до началната страница:curl -I https://666.com Код за състоянието на проверката 200 Не. 301/302Не знам.
    • Проверява произволно дали статии, страници, URL адреси на медийни файлове сочат към нови имена на домейн.
  2. Оптимизация на ефективността
    • Настройване на справката в базата данни Redis или Memcached.
    • Използване docker system prune Изтрива изображението на невалидния контейнер.

Оперативни рискове и заобикаляне

Сцена на рискаИзпълнениеОтказ от мерки
Конфликт с разрешения за БДСтартирането на опаковката е неуспешно, намекът за дневника отказанХармонизиране на групата потребители на свитъците с данни преди архивиране 999:999(MySQL по подразбиране)
Поредена повреда на даннитеоформлението на страницата е объркано или функциите на плъгин са необичайниИзползване -g Параметри за обработка на серийни данни
Непълен архивен файлЛипсва структурата на внесения часовникДвойна резервно копие (SQL + обем на данните) за възстановяване на MD5 хаш

V. Учебни и стандартизирани процеси

1. Стандартизиран процес на миграция

  1. Подкрепление на местната среда:# 备份数据库 + 数据卷  
    docker exec mysql-container mysqldump -uroot -p123456 wordpress > backup.sql  
    docker volume inspect mysql_data > volume_backup.json  
  2. Предопределяне на производствената среда:
    • Създава същата версия на MySQL контейнер предварително, монтира обема на данните.
  3. Превод и субтитри::
    • Използване rsync Синхронизиране wp-content/uploads .

2. Пример за автоматизирани скриптове

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

Дълготрайни механизми за мониторинг

  • Монитор на дневника:docker logs -f prod-mysql-container | grep -E "ERROR|WARNING"  
  • Здравен скрининг:curl -s https://666.com/health-check | grep "OK"  

VI. Окончателна стойност

Чрез тази миграция, "Containization WordPress 4-step method.":

  1. Стандартизиран архив: SQL + Data Volume Double Insurance.
  2. Възстановяване на инструменти: Заместващи данни за сигурност, комбинирани с приставки и командни инструменти.
  3. Атомно удостоверяванеФазирани страници, API, медийни ресурси.
  4. Автоматизирано наблюдениеДневници, здравни проверки, редовни тестове.

Тази опция може да предостави общ образец за транспортирането на заявления за контейнеризация и да намали техническите прагове, произтичащи от екологични различия.