遷移一個 WordPress 網站——無論是轉移到新的主機、更改域名,還是從測試環境轉移到生產環境——都是大多數 WordPress 用戶在某個時候會面臨的任務。如果正確執行,遷移需要 30-60 分鐘且不會有停機時間。如果執行不當,可能會導致斷開的鏈接、缺失的圖片、數據庫錯誤以及數小時的故障排除。
在本指南中,我們涵蓋了三種遷移方法:手動遷移(完全控制)、插件輔助遷移(簡單性)和主機提供商遷移(方便性)。每種方法都包括逐步說明和驗證檢查清單。
遷移前:準備檢查清單
| 步驟 | 為什麼重要 | 如何執行 |
|---|---|---|
| 創建完整備份 | 如果遷移失敗的安全網 | 使用 UpdraftPlus 或手動導出 |
| 記錄當前設置 | 遷移後驗證的參考 | 截圖 wp-admin 設置、啟用的插件列表、永久鏈接結構 |
| 檢查伺服器要求 | 確保新主機符合 WordPress 最低要求 | PHP 8.0+、MySQL 5.7+ / MariaDB 10.4+、HTTPS 支持 |
| 注意 DNS 設置 | 遷移後需要更新 DNS | 從註冊商導出當前 DNS 記錄 |
| 減少 TTL | 加快遷移後的 DNS 傳播 | 在遷移前 24 小時將 DNS TTL 設置為 300 秒(5 分鐘) |
方法 1:手動遷移(完全控制)
手動遷移讓您對過程有完全的控制權。這是開發人員和具有自定義配置的複雜網站的首選方法。
步驟 1:導出數據庫
通過 SSH 或 phpMyAdmin 連接到當前主機並導出 WordPress 數據庫:
使用命令行(SSH):
- 運行:
mysqldump -u username -p database_name > backup.sql - 將 backup.sql 文件下載到本地計算機
使用 phpMyAdmin:
- 選擇您的數據庫 → 導出 → 快速導出 → SQL 格式 → 轉到
- 保存 .sql 文件
步驟 2:複製所有文件
從當前伺服器下載所有 WordPress 文件:
- 通過 SFTP 連接(FileZilla、WinSCP 或 Cyberduck)
- 下載整個 WordPress 目錄(wp-content、wp-admin、wp-includes、根文件)
- 或者,創建壓縮檔案:
tar -czf wordpress-backup.tar.gz /path/to/wordpress/
wp-content 目錄是最重要的——它包含您的主題、插件、上傳的文件(圖片)和配置文件。
步驟 3:將文件上傳到新伺服器
- 通過 SFTP 上傳或在新伺服器上解壓縮檔案
- 確保文件權限正確:目錄設置為 755,文件設置為 644
- 驗證 wp-config.php 文件存在但需要更新
步驟 4:在新伺服器上創建數據庫
- 在新主機上創建新的 MySQL 數據庫和用戶
- 授予該用戶對新數據庫的完全權限
- 導入數據庫:
mysql -u new_username -p new_database < backup.sql
步驟 5:更新 wp-config.php
在新伺服器上編輯 wp-config.php,使用新的數據庫憑據:
DB_NAME→ 新的數據庫名稱DB_USER→ 新的數據庫用戶名DB_PASSWORD→ 新的數據庫密碼DB_HOST→ 通常為 'localhost',但請與您的主機確認
步驟 6:搜索和替換 URL(如果更改域名)
如果您的域名正在更改,您需要更新數據庫中的所有 URL。WordPress 為圖片、鏈接和序列化數據存儲絕對 URL。使用 WP-CLI 工具或 Search Replace DB 腳本:
wp search-replace 'https://old-domain.com' 'https://new-domain.com' --all-tables- 這可以正確處理序列化數據(與簡單的 SQL 查找和替換不同)
步驟 7:更新 DNS
將您的域名的 DNS 記錄指向新服務器的 IP 地址。在您的域名註冊商處更新 A 記錄(以及 IPv6 的 AAAA 記錄)。將 TTL 設置為 300 秒(從準備開始),傳播通常在 5-30 分鐘內完成。
方法 2:插件遷移(最簡單)
遷移插件自動處理技術細節。這是對於不熟悉 SSH 和數據庫管理的用戶推薦的方法。
推薦的遷移插件
| 插件 | 免費限制 | 主要功能 |
|---|---|---|
| All-in-One WP Migration | 512 MB 匯出 | 一鍵匯出/匯入,包含 URL 替換 |
| UpdraftPlus Premium | 備份免費,遷移付費 | 增量備份、雲存儲、網站克隆 |
| Duplicator Pro | 500 MB 匯出(免費) | 創建安裝包,處理序列化數據 |
| WP Migrate | 有限(免費) | 在環境之間推送/拉取,僅數據庫遷移 |
遷移過程(All-in-One WP Migration)
- 在源站點上安裝:在當前網站上安裝並啟用插件
- 匯出:轉到 All-in-One → 匯出 → 匯出到 → 文件。插件會創建一個 .wpress 壓縮包
- 在目標上安裝 WordPress:在新主機上設置全新的 WordPress 安裝
- 在目標上安裝插件:在新的 WordPress 安裝上安裝相同的插件
- 匯入:轉到 All-in-One → 匯入 → 上傳 .wpress 文件
- 完成:插件自動替換數據庫、文件並更新 URL
方法 3:主機提供商遷移
許多主機提供商提供免費的遷移服務或內置的遷移工具:
- SiteGround:使用他們的 Migrator 插件免費遷移 WordPress
- Cloudways:由他們的團隊提供的第一次免費遷移
- Kinsta:所有計劃均包含免費遷移,由他們的團隊處理
- WP Engine:自動化遷移插件
主機協助的遷移是最簡單的選擇,但給您最少的控制權。對於具有自定義配置、計劃任務或非標準設置的網站,手動或插件遷移更可靠。
遷移後驗證檢查清單
| 檢查項 | 如何驗證 | 如果失敗 |
|---|---|---|
| 首頁加載正確 | 在瀏覽器中訪問您的域名 | 檢查 DNS 傳播,驗證數據庫連接 |
| 管理員登錄正常 | 轉到 /wp-admin 並登錄 | 檢查 wp-config.php 數據庫憑據 |
| 永久鏈接正常 | 點擊任何帖子或頁面 | 轉到設置 → 永久鏈接 → 保存(重新生成 .htaccess) |
| 圖片顯示正確 | 瀏覽幾個包含圖片的頁面 | 在上傳路徑中運行舊域名的搜索替換 |
| 表單成功提交 | 測試所有聯絡表單 | 檢查 SMTP 設置,表單插件配置 |
| SSL 證書有效 | 檢查瀏覽器中的鎖形圖標 | 在新主機上安裝 SSL,將 WordPress URL 更新為 https |
| 電子郵件發送正常 | 觸發密碼重置電子郵件 | 配置 SMTP 插件(WP Mail SMTP) |
| WooCommerce 正常運作 | 測試加入購物車和結帳流程 | 驗證支付閘道金鑰,運輸區域 |
| 計劃任務正常運行 | 檢查 WP-Crontrol 中的計劃任務 | 驗證 wp-cron 是否啟用或設置伺服器 |
| 搜尋功能 | 測試網站搜尋 | 如果使用搜尋插件,重建搜尋索引 |
常見遷移問題及解決方案
| 問題 | 原因 | 解決方案 |
|---|---|---|
| 遷移後出現白屏 | PHP版本不匹配或插件衝突 | 啟用WP_DEBUG,檢查PHP版本,通過FTP禁用插件 |
| 混合內容警告 | 某些URL仍使用http://而非https:// | 執行搜尋替換: http://domain.com → https://domain.com |
| 圖片損壞 | 上傳路徑未更新或文件缺失 | 驗證wp-content/uploads目錄,執行URL搜尋替換 |
| 數據庫連接錯誤 | wp-config.php中的憑證錯誤 | 驗證DB_NAME,DB_USER,DB_PASSWORD,DB_HOST |
| 除了首頁外所有頁面均顯示404 | 永久鏈接.htaccess未重新生成 | 設置 → 永久鏈接 → 保存更改 |
| 重定向循環 | 舊的CDN或緩存規則衝突 | 清除所有緩存,檢查.htaccess以查找衝突的重定向 |
有關更多詳細信息,請參閱官方文件: WordPress 遷移文件.
常見問題解答
WordPress遷移需要多長時間?
典型的遷移過程需要30-60分鐘。DNS傳播可能會根據您的TTL設置和ISP緩存增加5分鐘到48小時。在遷移前24小時將TTL減少到300秒可以最小化傳播延遲。
遷移過程中我會丟失任何數據嗎?
如果您遵循先備份的方式,就不會丟失數據。在開始之前創建完整備份,並且在確認新主機上的一切正常之前,不要刪除舊網站。備份確保您可以在出現問題時恢復到原始狀態。
我可以在不停機的情況下遷移WordPress網站嗎?
可以。關鍵是在更新DNS之前完成新伺服器上的遷移。在新主機上設置網站,確認一切正常(使用臨時URL或hosts文件條目),然後更新DNS。用戶將在DNS傳播之前由舊伺服器提供服務,然後無縫切換到新伺服器。
遷移後我需要重新安裝插件和主題嗎?
不需要。完整的遷移(文件 + 數據庫)包括所有插件、主題、上傳和設置。一切都會原樣轉移。您應該確認插件已啟用並正確配置,但不需要重新安裝。
如果我的網站對於遷移插件來說太大怎麼辦?
超過2-5 GB的網站(媒體密集型網站常見)可能會遇到上傳限制或遷移插件的超時問題。在這種情況下,使用手動方法:通過SSH/SFTP傳輸文件,並通過命令行導入數據庫。大型數據庫可以使用--max_allowed_packet參數進行拆分。
我應該在遷移之前還是之後更新WordPress、插件和主題?
在源網站上遷移之前進行更新,並在更新後確認一切正常。遷移已更新的網站可以避免在不熟悉的伺服器上排除更新問題的複雜性。關於安全性和性能的最佳實踐,請參見我們的WordPress維護清單。



