跳轉到內容

遷移

遷移工具可透過網路將網站、資料庫、資料庫使用者和專案從目前的 AcePanel 伺服器轉移到另一台 AcePanel 伺服器。 這是面板對面板的遷移:來源端(你正在操作的面板)和目標端(遠端伺服器)都必須執行 AcePanel。

來源端透過 AcePanel 經過驗證的 API 連線到目標端,在目標端重新建立每個資源,並將資料串流傳輸過去。 進度會即時顯示,並可下載完整日誌。

先決條件

遠端伺服器必須已安裝 AcePanel 且可存取。 為使遷移成功,兩台伺服器應執行相符的環境(Web 伺服器必須完全相同,且你要遷移的資料庫和語言執行環境應已在目標端存在)。 預先檢查步驟會比較兩端環境,協助你在開始前發現差異。

遷移精靈

遷移由一個五步精靈驅動,以步驟指示器的形式顯示在頁面頂部:

步驟名稱說明
1連線輸入遠端伺服器資訊
2預先檢查驗證環境
3選擇項目選擇要遷移的內容
4遷移中傳輸進行中
5完成檢視結果

一台伺服器上同一時間只能執行一個遷移任務。 如果你開啟頁面時已有遷移正在進行,精靈會直接跳到 遷移中 步驟並重新連線到即時進度;如果遷移剛剛完成,則會開啟 完成 步驟。

步驟 1:連線

輸入目標(遠端)AcePanel 伺服器的連線詳細資訊:

欄位說明
面板 URL遠端面板的完整 URL,例如 https://remote-server:8888。 如果設定了面板入口路徑,請一併填入。
權杖 ID在遠端面板上建立的存取權杖的數字 ID(預設為 1)。
存取權杖在遠端面板上建立的存取權杖的密鑰值。

權杖 ID 和存取權杖是 遠端 伺服器的 API 憑證。 在目標面板的 設定 > 使用者 > 存取權杖 下建立它們。 遷移使用這些憑證透過 HMAC-SHA256 簽章對發往遠端面板的每個請求進行驗證,機制與 API 參考 中描述的相同。

注意

權杖 ID 是建立權杖時回傳的 ID,而非使用者 ID。 即使遠端伺服器的 TLS 憑證是自簽署的,遷移也會信任它,因此使用自簽署憑證的 HTTPS 面板無需額外設定即可運作。

點選 下一步 進行連線。 面板會聯絡遠端伺服器,讀取其已安裝的環境,然後進入預先檢查。

步驟 2:預先檢查

預先檢查會並排比較本機和遠端環境,讓你在傳輸任何內容前確認相容性。 比較表列出:

比較內容
Web 伺服器已安裝的 Web 伺服器(必須相符)
Go / Java / Node.js / PHP / Python已安裝的語言執行環境和版本
資料庫已安裝的資料庫引擎

每一列顯示本機值、遠端值以及一個狀態標籤(相符 / 不相符 / 不同)。 資料庫這一列僅供參考,顯示一個短橫線而非狀態標籤。

預先檢查會強制要求並對以下情況發出警告:

  • Web 伺服器必須相符。 如果本機和遠端的 Web 伺服器不同,檢查將失敗,你無法繼續。 精靈會回報該不相符,並且 下一步 按鈕會保持停用狀態。
  • 缺少執行環境。 如果某個語言執行環境(Go、Java、Node.js、PHP、Python)在本機已安裝但在遠端伺服器上不存在,會出現警告,提示相關專案在遷移後可能需要重新設定。
  • 缺少資料庫引擎。 如果某種資料庫類型在本機存在但在遠端伺服器上不存在,會出現警告,提示該類型的資料庫遷移將被略過。

在你調整遠端伺服器後(例如安裝了缺少的執行環境或資料庫引擎),可使用 重新整理 重新執行預先檢查,或使用 上一步 返回並變更連線詳細資訊。 當 Web 伺服器相符時,點選 下一步 選擇要遷移的內容。

步驟 3:選擇項目

精靈會載入本機伺服器上所有可遷移的內容,並分為四個部分。 在每個部分勾選你想要傳輸的項目;空的部分會顯示「找不到任何項目」佔位提示。

  • 網站:顯示每個網站的名稱及其目錄路徑。
  • 資料庫:顯示資料庫名稱、類型(mysql / postgresql)以及它所屬的資料庫伺服器。
  • 資料庫使用者:顯示使用者名稱、主機(針對 MySQL)、資料庫類型和伺服器名稱。
  • 專案:顯示專案名稱、類型和根目錄。

清單下方有一個選項:

  • 遷移期間停止服務以確保資料一致性(建議) — 預設啟用。 勾選後,在傳輸每個項目之前,會先停止對應的網站和該專案的 systemd 服務,從而防止檔案和資料在複製過程中發生變化。

你必須至少選擇一個項目,否則精靈會要求你選擇一些內容。 點選 開始遷移 並在對話方塊中確認即可開始。 使用 上一步 返回預先檢查。

警告

遷移會在遠端伺服器上重新建立資源,並將檔案上傳到相同的路徑下。 遠端伺服器上名稱或路徑相同的現有資料可能會被覆蓋。 請確保目標伺服器已準備就緒,並最好在開始前完成備份。

步驟 4:遷移中

遷移一旦開始,便會在來源伺服器上於背景執行,同時頁面會顯示即時進度:

  • 狀態表會列出每個選取的項目及其 類型名稱狀態(執行中 / 成功 / 失敗 / 已略過)和 耗時
  • 捲動的 遷移日誌 面板會即時串流輸出詳細的日誌行,包括每個檔案的上傳進度以及傳輸速度和預計剩餘時間。

進度透過 WebSocket 連線推送;如果該連線中斷會自動重新連線,如果無法建立連線,頁面會回退到輪詢方式。 你可以離開頁面稍後再回來——精靈會繼續處理該遷移。 使用 下載日誌 將完整日誌儲存為 migration.log

各項目類型的處理方式

遷移按以下順序處理項目:先網站,然後資料庫,再資料庫使用者,最後專案。

類型行為
網站在遠端面板上重新建立網站(類型、監聽連接埠、網域、路徑、PHP 版本,以及代理網站的反向代理目標),然後打包並上傳網站目錄,並在遠端伺服器上解壓縮。 安全(443/SSL)監聽位址在建立時會被略過,因為遠端網站尚無憑證。
資料庫使用 mysqldump(MySQL)或 pg_dump(PostgreSQL)匯出資料庫,在遠端查找相符的資料庫伺服器(按名稱和類型),在那裡建立資料庫,上傳傾印檔案,並在遠端伺服器上匯入。
資料庫使用者查找本機使用者的權限,找到相符的遠端資料庫伺服器,並在遠端面板上重新建立該使用者(使用者名稱、密碼、主機、權限)。
專案在遠端面板上重新建立專案(名稱、類型、描述、目錄、啟動指令、執行身分使用者),上傳專案根目錄,並上傳 systemd 服務檔案(然後在遠端執行 systemctl daemon-reload)。

注意

檔案以 10 MB 分塊傳輸並進行完整性校驗,且上傳在中斷後會從斷點處續傳,因此大型目錄和資料庫都能可靠傳輸。

步驟 5:完成

遷移完成後,精靈會顯示結果摘要:

  • 整體狀態:如果每個項目都遷移成功則為 成功,如果部分項目出現問題則為 警告
  • 遷移的開始和結束時間。
  • 一個詳細的結果表,包含每個項目的 類型名稱狀態耗時詳細資訊(失敗項目的錯誤訊息,或成功項目的完成時間)。
  • 如果預先檢查發現了環境差異,會有一條提醒,指出你可能需要在遠端伺服器上調整設定,否則受影響的項目在遷移後可能無法正常運作。

在此你可以 下載日誌 保留一份完整遷移日誌的副本,或點選 開始新的遷移 重設精靈並重新開始。

遷移後檢查清單

遷移完成後,登入遠端 AcePanel 伺服器並驗證結果:

  • 憑證:TLS 憑證不會被轉移。 為遷移的網站重新簽發或重新匯入憑證,然後重新啟用 HTTPS 和所有安全(443)監聽連接埠。
  • 執行環境和服務:對於預先檢查標記為在遠端伺服器上缺少的任何執行環境,請安裝它並調整相關的網站或專案設定。
  • 資料庫連線:確認遷移的資料庫和使用者存在,如果應用程式的連線設定引用的是舊伺服器,請更新它們(主機、憑證)。
  • 啟動服務:如果你在遷移期間停止了網站或專案服務,請在確認一切就緒後於遠端伺服器上重新啟動它們。

重設

遷移仍在執行時無法重設。 一旦它進入完成(或閒置)狀態,使用 開始新的遷移 清除連線詳細資訊、所選內容、日誌和結果,然後再開始另一次遷移。