DedeCMS 安裝程式位於 install/ 目錄。安裝過程實為:
1. 檢查環境 → 2. 讀取 install/module-install.php 執行 SQL 建表 (sql-dftables.txt) 與寫入資料 (sql-dfdata.txt) → 3. 寫入 data/common.inc.php 資料庫連線設定 → 4. 產生 install_lock.txt 防止重裝。
我們要做的就是:**預先備妥目標資料庫的 SQL**,替換安裝目錄預設 SQL 檔案,並確保安裝入口開放。
install/index.html (靜態首頁,會阻擋安裝精靈)。install/index.php.bak 重命名為 index.php (安裝精靈入口)。install/install_lock.txt (若存在,安裝程式會拒絕執行)。install/module-install.php.bak 重命名為 module-install.php (核心安裝邏輯)。使用 phpMyAdmin (或 mysqldump) 匯出**完整資料庫結構與資料**。
SQL → 執行 → 複製結果 → 覆蓋 install/sql-dftables.txt。SQL → 選項:install/sql-dfdata.txt。# 僅結構 mysqldump -u root -p --no-data --routines --triggers --events --databases dede_db > sql-dftables.txt # 僅資料 (完整 INSERT, 十六進制二進位) mysqldump -u root -p --no-create-info --complete-insert --hex-blob --databases dede_db > sql-dfdata.txt
將產生的兩個檔案分別覆蓋 install/ 目錄下同名檔案。
安裝精靈最後會寫入 data/common.inc.php。若要預設資料庫前綴、cookie 加密鑰等,可修改 install/module-install.php 中寫入配置的邏輯,或準備一份預設 common.inc.php.bak 由安裝腳本複製。
data/common.inc.php (若存在)、data/cache/ 快取、uploads/ 測試上傳檔、a 目錄 (舊版後台) 等敏感/臨時內容。dede_custom_package.zip。https://domain/install/ → 填寫資料庫資訊 (主機、使用者、密碼、資料庫名) → 下一步 → 完成。#!/bin/bash # build_dede_package.sh WEB_ROOT="/var/www/dede_source" PKG_DIR="/tmp/dede_package_$(date +%Y%m%d_%H%M%S)" DB_NAME="dede_db" DB_USER="root" DB_PASS="your_password" # 1. 複製原始碼 cp -r "$WEB_ROOT" "$PKG_DIR" # 2. 處理 install 目錄 cd "$PKG_DIR/install" rm -f index.html install_lock.txt mv index.php.bak index.php mv module-install.php.bak module-install.php # 3. 匯出 SQL mysqldump -u"$DB_USER" -p"$DB_PASS" --no-data --routines --triggers --events --databases "$DB_NAME" > sql-dftables.txt mysqldump -u"$DB_USER" -p"$DB_PASS" --no-create-info --complete-insert --hex-blob --databases "$DB_NAME" > sql-dfdata.txt # 4. 清理敏感/暫存檔 cd "$PKG_DIR" rm -f data/common.inc.php rm -rf data/cache/* uploads/* a/ 2>/dev/null # 5. 打包 cd /tmp zip -r "dede_custom_$(date +%Y%m%d).zip" "$(basename "$PKG_DIR")" echo "Package created: dede_custom_$(date +%Y%m%d).zip"
dede_ 前綴。安裝時若客戶指定不同前綴,**安裝程式不會自動替換 SQL 內前綴**。解決:安裝前手動修改 SQL 檔案前綴,或修改安裝程式支援前綴替換 (需二開)。sql-dfdata.txt 中將 dede_admin 表密碼欄位替換為已知雜湊值 (如 admin 對應 e10adc3949ba59abbe56e057f20f883e MD5),或要求客戶安裝後立即修改。each() 棄用、create_function 移除)。install_lock.txt 防止重裝。掌握「乾淨 install 目錄 + 精準 SQL 分離匯出 + 敏感檔清理」三步驟,即可輕鬆打造專屬 DedeCMS 一鍵安裝包,大幅降低交付風險與客戶上手門檻。