DedeCMS(織夢)搬家看似簡單,實則暗藏「資料庫版本不符、編碼亂碼、路徑殘留、權限不足」等坑。本文整理官方推薦流程、進階遷移技巧、常見問題對策,確保 100% 成功遷移。
dede_)務必相同。gbk 或 utf8)。data/backupdata/(或後台設定目錄),為多個 .txt 檔案。僅需下載以下目錄(不含 include/config_base.php、data/common.inc.php 等配置檔):
templets/(模板)uploads/ 或 upimg/(附件/圖片)plus/(外掛/專題)images/(前台圖片)data/backupdata/(剛備份的資料庫檔案)special/(專題模板,如有)install/ 目錄執行安裝。dede_)。install/ 目錄。data/common.inc.php 連線資訊(主機、用戶、密碼、資料庫名、前綴)。templets/, uploads/, plus/, images/ 等目錄覆蓋。注意: 部分虛擬主機限制 SQL 匯入 < 20MB,大資料庫請用官方備份還原(分卷)或命令列 mysql -u... -p... db < backup.sql。
| 問題 | 原因 | 解決 |
|---|---|---|
| 後台亂碼 | 資料庫編碼不一致(舊 gbk 新 utf8 或反之) | 備份時選正確編碼;還原時 phpMyAdmin/命令列指定 SET NAMES gbk;或修改 include/config_base.php $cfg_db_language |
| 前台顯示「無此欄目」/404 | 欄目未生成、路徑錯誤、資料庫還原不全 | 後台「更新欄目緩存」→「更新文檔 HTML」;檢查 dede_arctype 資料 |
| 附件/圖片不顯示 | uploads/ 未遷移、權限 755/777、路徑配置錯 | 遷移目錄;chmod -R 755 uploads;後台「系統參數」檢查附件路徑 |
| 後台登入失敗 | 資料庫還原後帳密變為備份時帳密 | 使用備份時的管理員帳密登入 |
| MySQL 版本不符報錯 | 舊 5.6 新 5.7/8.0,SQL 模式/語法差異 | 盡量同版本;或備份前 SET sql_mode='',還原後調整 |
「不同虛擬主機空間的 mysql 資料庫名稱是各不相同的(因為其前綴不一樣的),所以要首先備份資料庫,然後放到新空間還原,再重新生成 html 即可。」
「新空間重新安裝同一版本的 dedecms 系統時,資料庫名稱和資料庫用戶名和密碼當然是填新數據庫的了,設置的資料庫表的前綴必須和原數據庫表的前綴一致,以免看不到內容。」
「資料庫恢復後,後台登陸用戶名和密碼要使用備份前原網站後台的登陸用戶名和密碼。」
若頻繁遷移,可編寫 Shell/PHP 腳本自動化:
#!/bin/bash
# 1. 打包舊站檔案(排除配置)
tar --exclude='data/common.inc.php' --exclude='include/config_base.php' -czf dedecms_files.tar.gz /var/www/html/
# 2. 備份資料庫
mysqldump -u$user -p$pass --default-character-set=gbk $db > dedecms_db.sql
# 3. 新站解壓、匯入、修改配置、生成靜態(需配合 DedeCMS CLI 生成工具)
DedeCMS 搬家核心在於資料庫備份還原 + 模板附件遷移 + 版本前綴編碼一致 + 全站重新生成。遵循官方標準流程,配合編碼/版本/權限檢查,可將失敗率降至最低。大型站點建議採用主從同步、增量備份、容器化部署等現代化運維體系。