← Kembali ke daftar

Lokal ke awan: Migrasi WordPress Solusi Rantai Penuh, Backup Data, Restorasi Basis Data, dll.

itadol5j

I. Latar belakang dan tantangan inti

Adegan migrasi

Lingkungan pengembangan lokallocalhost:8081Organiser lainnya 666.comIni melibatkan penyebaran penyebarannya (Docker) dan migrasi lingkungan dari basis data.

Masalah inti

  • Halaman Pertama Melompat Tidak Biasa: kunjungan 666.com Autojump ke localhost:8081karena basis data berisi nama domain lama.
  • Resiko konsistensi data: Data kontainer dok tidak didukung dan proses migrasi mungkin kehilangan konfigurasi atau data plugin.

Analisis akar penyebab masalah

  1. Nama domain lama basis data
    • wp_options Tabel siteurl dan home field tidak diperbarui.
    • Artikel, metadata, dan data yang diurutkan (misalnya, menu, alat-alat kecil) berisi alamat-alamat lama yang dikodekan.
  2. Hilang Manajemen Data Dok
    • Gagal mengadopsi volume data atau mysqldump Cadangan lengkap, kontainer penanganan langsung yang mengakibatkan hilangnya data yang tidak dapat dikembalikan.
  3. Interferensi Konfigurasi Server
    • Aturan redirektif dari lingkungan lama (mis. .htaccessTidak dibersihkan.

III. Solusi rantai penuh

Tahap 1: Backup Data Dok dan Migrasi

Basis Data MySQL Backup Metode 1: Adopsi mysqldump Ekspor Berkas 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  
Metode 2: Volume Data Backup MySQL
# 备份数据卷(宿主机操作)  
docker run --rm -v mysql_data:/source -v /host/backup:/backup alpine tar czf /backup/mysql_data.tar.gz -C /source .  
2. Impor basis data MySQL ke lingkungan produksi
# 导入 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  
Validasi integritas data
# 检查关键表数据  
docker exec prod-mysql-container mysql -uroot -p123456 -e "USE wordpress; SELECT COUNT(*) FROM wp_posts;"  

Tahap II: restorasi nama domain melompat

1. database pengganti keamanan nama domain lama Alat pilihan dan operasi
  • Plugin BetterSearchTimpa:
    1. Penggantian pustaka penuh localhost:8081 Ya 666.comAku tidak tahu.
    2. Ubah Ukuran Halaman Maksimum ke 500, Memproses batch tabel besar.
  • Cari -Replace- DB alat baris perintah:php srdb.cli.php -h localhost -u root -p 123456 -n wordpress -s "localhost:8081" -r "666.com" -g  
2. Paksa Pemutakhiran Konfigurasi WordPress
// 在 wp-config.php 中定义绝对域名  
define('WP_HOME', 'https://666.com');  
define('WP_SITEURL', 'https://666.com');  
3. Bersihkan sisa konfigurasi server
  • Hapus aturan orientasi lama:# .htaccess 中删除旧规则
    RewriteRule ^(.*)$ https://localhost:8081/$1 [R=301,L] # 删除此行

Phase III: sertifikasi dan optimasi

  1. Otentikasi Fungsi
    • Akses halaman rumah:curl -I https://666.com Periksa kode status 200 Tidak 301/302Aku tidak tahu.
    • Periksa secara acak apakah artikel, halaman, URL berkas media menunjuk ke nama domain baru.
  2. Optimisasi performance
    • Mengkonfigurasi kueri basis data singgahan Redis atau Memcache.
    • Gunakan docker system prune Menghapus gambar dari wadah yang tidak valid.

Risiko operasional dan pengawasan

Adegan resikoPenampilanTindakan penolakan
Konflik Ijin Basis DataStartup paket gagal, petunjuk log ditolakHarmonize kelompok pengguna dari gulungan data sebelum cadangan 999:999(MySQL Default)
Sequenced kerusakan dataTata letak halaman bingung atau fungsi plugin tidak normalGunakan -g Parameter untuk memproses data serialisasi
Berkas backup tidak lengkapStruktur dari jam impor hilangDouble Backup (Volume Data SQL +) untuk mengembalikan Hash MD5

V Lesson belajar dan proses standardisasi

Proses migrasi standar

  1. Backup Lingkungan Lokal:# 备份数据库 + 数据卷  
    docker exec mysql-container mysqldump -uroot -p123456 wordpress > backup.sql  
    docker volume inspect mysql_data > volume_backup.json  
  2. Konfigurasi awal dari lingkungan produksi:
    • Membuat versi yang sama dari kontainer MySQL di muka, membuat volume data.
  3. Incremental Data Sync:
    • Gunakan rsync Selaraskan wp-content/uploads .

2. Contoh dari skrip otomatis

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

Mekanisme pemantauan abadi

  • Monitor Log:docker logs -f prod-mysql-container | grep -E "ERROR|WARNING"  
  • Pemutaran Kesehatan:curl -s https://666.com/health-check | grep "OK"  

VI. Nilai akhir

Melalui praktek migrasi ini, "Kontainisasi WordPress metode 4-langkah".:

  1. Cadangan Standardisasi: SQL + Data Volume Asuransi Ganda.
  2. Alat rehabilitasi: Data penggantian keamanan dikombinasikan dengan plugin dan alat-alat baris perintah.
  3. Otentikasi atomPhased halaman cek, API, sumber daya media.
  4. Pemantauan otomatisLogs, pemeriksaan kesehatan, tes rollback reguler.

Opsi ini dapat menyediakan template generik untuk transportasi aplikasi insinerisasi dan mengurangi ambang batas teknis yang dihasilkan dari perbedaan lingkungan.