將您的網站從一臺服務器遷移到另一臺服務器可能是一個困難且耗時的過程,但通過準備和考慮,它可以順利進行。在我作為系統管理員的整個過程中,遷移一直是我從事的一些最耗時的任務。本指南的目的是讓您受益于我的經驗,以便您了解可能遇到的問題類型,以及如何最好地先發制人地避免這些問題。
cPanel 具有出色的遷移工具,本指南的范圍適用于從一個 cPanel 環境遷移到另一個環境的用戶,但是這里的許多一般原則適用于任何服務器遷移。
我會將您的遷移分為幾個階段:
- 計劃?– 這是您在遷移開始準備之前要做的事情。
- 準備?- 這是您在遷移之前(當天)所做的事情。
- 遷移?——這是遷移數據的實際過程。
- 總結?——清理一切以完成過渡。
cPanel 的遷移工具
cPanel 包含用于備份每個用戶帳戶擁有的大部分信息的工具,包括:
-
- 主目錄(所有用戶的文件
- 用戶的電子郵件文件通常位于主目錄內的 Maildir 文件夾中。
- 主目錄(所有用戶的文件
- MySQL 數據庫
- 電子郵件帳戶
- 電子郵件轉發器和過濾器
- · WHM設置
- · 易阿帕奇
不幸的是,并非 WHM 中的所有配置和模塊都有簡單的遷移路徑。如果您的服務器上有很多自定義項,最好計劃手動審核并確定您可能需要在新服務器上配置什么。如果您在使用舊服務器的整個過程中對 WHM 進行了相對較少的更改,則很可能沒有什么特別需要關注的。
規劃
在考慮遷移過程時,應查看這些步驟和注意事項。大部分計劃可以在您訂購您計劃遷移到的新服務器之前完成。
-
清理未使用的數據
幾乎沒有理由浪費時間和精力來遷移以前客戶的帳戶、已失效的項目或其他不再使用的網站。因此,在您開始遷移過程之前,值得花一些時間查看您的帳戶列表,看看是否有任何可以消除的東西。
此外,查看較大的帳戶并了解它們為何如此之大也是一個好習慣。您可能會發現大型無用文件夾,其中包含您可能不需要遷移到新服務器的舊備份等內容。
您可以消除的任何事情都將減少遷移所需的時間,并確保您以最佳方式使用新的服務器資源。
-
考慮 IP 地址更改
在遷移到新服務器時,在很多情況下您可能需要更改當前使用的 IP 地址。如果您有任何網站使用一個這樣的 IP 地址,則它們在遷移時需要更改 IP。如果您的名稱服務器使用需要更改的 IP,則需要在遷移時更新其 GLUE 記錄。
在 GigeNET 和許多其他提供商處,您的服務器的主 IP 地址與插槽位置相關聯,因此如果您遷移到新硬件,則需要更改。但是,在大多數情況下,只要新服務器與舊服務器位于同一位置,我們就可以協助重新路由您的路由 IP 分配。
通過在服務器遷移期間不更改 IP 或預先將其更改為可路由 IP,可以使用此策略來節省時間。如果您提前計劃,您可能會在將服務器遷移到您可以輕松移動的 IP 之前更改您網站的 IP。
如果您知道需要更改 IP 地址,請查看您的所有網站的 DNS 托管位置。如果您的網站正在使用第三方 DNS 服務(某些代理服務,如 CloudFlare 也會默認設置此服務),對這些網站的 IP 地址的任何更改都需要與有權訪問這些服務的人協調。否則,您將需要事先訪問它們。
如果您要更改 IP 地址,最好提前降低 DNS 記錄的 TTL。TTL 或生存時間是一個值,它確定 Internet 周圍的 DNS 服務器將記住(或緩存)存儲在特定 DNS 記錄中的信息的時間。提前降低此值可以加快 DNS 傳播速度。
-
考慮軟件版本更改
在遷移到新服務器時,您可能會在安裝了新操作系統的服務器上開店。因此,很可能該服務器將運行最新版本的可用軟件。您的舊服務器可能沒有。
- · APACHE 版本
- · PHP 版本
- 如果您當前運行的 Apache 版本早于 2.4,則更新到 2.4 可能會破壞某些 .htaccess 規則。您應該事先了解這一點,以便確保您知道需要修復的內容。如果在存在不兼容的 .htaccess 規則的情況下執行此升級,您可能會發現自己稍后會在受影響的網站上追蹤 500 個內部服務器錯誤。
- 考慮您的選擇:
-
- 您可以升級網站的代碼以與新版本的 PHP 兼容。理想情況下,這就是您想要做的。但是,這可能會很耗時,并且超出了您的托管服務提供商的支持范圍。您可能需要向開發人員尋求幫助。
- 如果您的網站是流行的網絡應用程序,例如 WordPress、Joomla 或類似的東西;考慮升級到最新版本,因為這些應用程序的最新版本通常支持新版本的 PHP。這是一個很好的安全實踐,無論如何你都應該這樣做。
- 如果您需要運行舊版本的 PHP,可以通過 CloudLinux 的 HardenedPHP 功能安全地執行此操作。
- CloudLinux 不是免費的,因此如果您不打算更新受影響的網站,請將其視為新服務器運營成本的一部分。
-
準備
這些步驟應在開始遷移之前執行,但在遷移之前相對較早(理想情況下)。
- 檢查 DNS TTL
在規劃階段查看上述信息中的任何注釋。如果您要更改任何 IP 地址,您是否記得降低 DNS 記錄上的 TTL 以加快傳播速度?
- 維護模式
盡可能將任何網站置于只讀或維護模式。遷移不是即時的,在您開始從舊服務器復制數據和站點在新服務器上運行之間會有一些滯后時間。在此期間,您的訪問者仍會從舊服務器上看到該網站。
如果在此時間窗口內進行了更改,則可能會丟失,因為傳輸已經開始。為了解決這個問題和其他問題,可以將許多流行的 Web 應用程序置于“維護模式”。這可以防止您的訪問者對網站的動態方面進行更改。
如果您不打算這樣做,請仔細考慮后果,因為它們可能適用于您的網站:
- 在遷移期間,博客可能會丟失訪問者發布的評論。
- 論壇可能會丟失遷移期間發布的帖子。
- 電子商務店面可能會丟失有關遷移期間下達的訂單的信息。
- 防止遺漏電子郵件
如果在遷移期間在舊服務器上收到電子郵件,它們將被傳遞到舊服務器上的郵箱,但可能永遠沒有機會被復制到新服務器。解決此問題的簡單方法是禁用當您開始遷移時,舊服務器上的 Exim 郵件服務器。如果有人在此期間嘗試向您服務器上的某人發送電子郵件,他們的郵件服務器將檢測到連接失敗并稍后重試。
在大多數情況下,這會導致電子郵件在新服務器上線后延遲發送到新服務器。如果您未在發件人郵件服務器上配置的重試時間之前完成遷移,則發件人將收到退回郵件并且電子郵件將不會送達。任何一種情況都比將電子郵件靜默發送到舊郵箱但用戶從未見過要好。
移民
這部分過程將是最耗時的,但需要您的互動很少!
遷移 cPanel 帳戶通常使用兩種技術:
- WHM 轉移工具
WHM 轉移工具為在服務器之間遷移帳戶提供了一個簡單的圖形界面。如果您自己進行遷移而服務器管理經驗相對較少,這可能是您的首選方法。該工具有據可查,因此我不會在這里詳細介紹。有關該工具的詳細信息,您可以查閱此文檔:https ://documentation.cpanel.net/display/68Docs/Transfer+Tool
- 想要對遷移進行更多控制的腳本化遷移
服務器管理員可以選擇手動遷移帳戶或使用基本腳本遷移帳戶。cPanel 包含的腳本可用于遷移單個帳戶,如下所示:
/scripts/pkgacct username ??< 打包username的賬號。
/scripts/restorepkg /path/to/package.tar.gz???< 恢復package.tar.gz中的賬號
使用這些腳本,創建一個腳本來打包所有帳戶相對簡單。你可以在 Bash 中使用一個簡單的 for 循環來做到這一點,如下所示:
for i in $(cat users.txt); do /scripts/pkgacct $i; done
要使上述操作生效,您確實需要創建一個users.txt文件,其中包含您希望遷移的所有 cPanel 用戶名的列表。
如果您在打包帳戶時遇到困難,可以查閱有關此腳本的 cPanel 文檔。
pkgacct 腳本支持多種選項,例如跳過數據庫、跳過主目錄和切換存檔壓縮。這些可以在特殊情況下派上用場,例如擁有大量 MySQL 數據庫或主文件夾的帳戶。在這些情況下,您可能希望 cPanel 不將這些文件捆綁在一起,因為它會遇到問題、花費很長時間或創建大量存檔;在這些情況下,您可以選擇使用其他方式自己轉移它們。
創建備份包后,您可以使用 scp、sftp 或 rsync 等傳輸工具將它們傳輸到新服務器。
可以使用相同的方法來恢復包。就像是:
for i in $(ls -1 cpmove*.tar.gz); do /scripts/restorepkg $i; done
通常,WHM 遷移工具是大多數用戶完成遷移的首選方式。腳本化遷移技術在您需要更多控制或需要能夠對遷移腳本創建的任何錯誤進行故障排除的情況下很有幫助。
包起來
為所有帳戶完成上述遷移步驟后,最好在將活動站點切換到新服務器之前盡快測試所有網站。如果網站配置了新的 IP 地址,您可以通過編輯主機文件在計算機上本地覆蓋 DNS。通過這種方式,您可以在瀏覽器中訪問這些網站,并查看它們在新服務器上的外觀,然后再讓它們為所有人服務。如果您需要有關此步驟的幫助,您可能會發現本指南很有用。
一旦您決定準備在新服務器上啟用這些站點,請繼續更新所有剩余的 DNS 條目,以將域指向新服務器。如果您有從舊服務器路由到新服務器的 IP 地址,請繼續。
手動檢查您的 DNS 區域以確保所有內容都已清理是個好主意。確保 DNS 區域中仍然不存在對舊 IP 地址的引用,并根據需要進行相應更新。此外,如果您降低了 TTL 時間,您可以利用這段時間將它們恢復到更高的值。這不是必需的,但被認為是一種很好的做法,可以減少 DNS 服務器的查詢負載。
一旦您認為新服務器上的所有內容都已存在,最好完全關閉舊服務器的電源。在您確定一切在新服務器上完全正確運行之前,不要繼續與您的托管服務提供商取消舊服務器。在我從事的遷移過程中,有很多次我們在此步驟中發現了一些驚喜,并且客戶意識到有些事情并沒有真正指向新服務器。所以,這樣做是個好主意,因為它很容易恢復(只需重新打開服務器),并且可以幫助您快速找到任何疏忽,以便您可以修復它們。當您感覺舒適時,您可以繼續取消舊服務器。?恭喜,您已成功完成遷移!