由於業務的需要,您可以將ECS執行個體中部署的網站程式遷移至Simple Application Server。本文介紹如何遷移ECS執行個體至Simple Application Server。
前提條件
已建立與ECS執行個體作業系統版本相同的Simple Application Server。具體操作,請參見建立Simple Application Server。
說明如果您已建立Simple Application Server,但作業系統與ECS執行個體不同,您可以重設系統。具體操作,請參見重設系統。
Simple Application Server的系統鏡像版本不如ECS執行個體公用鏡像版本全面,在實際的遷移過程中,您可以選擇接近的作業系統版本。例如,ECS執行個體使用的是CentOS 7.X版本的公用鏡像,您可以將Simple Application Server的鏡像更換為CentOS 7.3或CentOS 7.6的系統鏡像。
Simple Application Server已設定密碼。具體操作,請參見設定或重設伺服器密碼。
已允許存取所需的連接埠。具體操作,請參見防火牆設定。
本樣本中需允許存取MySQL的預設連接埠3306、寶塔面板的預設連接埠8888以及資料庫管理工具phpmyadmin預設連接埠888。
警告預設連接埠可能會導致伺服器被入侵,建議您使用後及時禁用對應的連接埠或者將預設連接埠改為其他連接埠。
背景資訊
本文的樣本情境中,將已部署LNMP環境的ECS執行個體中WordPress網站遷移至Simple Application Server,並保證網站可運行、資料完整。伺服器和遷移涉及的工具說明如下:
伺服器說明
ECS執行個體
Simple Application Server
鏡像:CentOS 7.8公用鏡像。
運行環境及應用程式:在LNMP環境中部署了WordPress網站。
其中,應用的版本資訊如下:
Nginx版本:1.16.1
MySQL版本:5.7.28
PHP版本:7.0.33
WordPress版本:5.1.10
說明本文不介紹如何在ECS執行個體中搭建LNMP環境以及部署WordPress網站。如果您需要瞭解具體操作,請參見手動搭建WordPress(CentOS 7)。
鏡像:CentOS 7.6。
遷移涉及的工具
工具
說明
aaPanel面板免費版
一款伺服器營運面板。本文將藉助aaPanel面板,在Simple Application Server中重新部署與ECS執行個體內一致的LNMP環境。
scp命令
該命令是基於SSH協議的遠程拷貝檔案的命令。ECS執行個體中的網站程式(不包含資料庫資料)將通過scp命令拷貝至Simple Application Server中。
阿里雲資料轉送DTS
ECS執行個體中網站程式的資料庫資料,將通過阿里雲資料轉送DTS遷移至Simple Application Server的資料庫中。關於DTS的更多資訊,請參見什麼是Data Transmission Service。
注意事項
建立快照以備份資料。
確保遷移前後兩台伺服器內的運行環境版本資訊一致。
部分網站對伺服器的運行環境的版本有較高的要求,如果遷移前後的運行環境版本不一致,可能導致網站無法正常運行,因此您需要完全瞭解您的ECS執行個體中運行環境的版本資訊。例如,您的運行環境為LNMP環境,則您需要瞭解Nginx、MySQL以及PHP應用的版本資訊,並保證在Simple Application Server上重新部署相同應用版本的運行環境。
檢查網路。
您需要確保ECS執行個體與Simple Application Server具備公網訪問能力。如果是跨國際地區遷移,請注意由網路環境不穩定造成的遷移速率過慢等問題。
遷移後影響
注意事項 | 說明 |
伺服器內的授權應用 | ECS執行個體與Simple Application Server處於不同的Virtual Private Cloud中,因此在遷移資料後,系統底層硬體裝置會發生變化,可能會導致某些與硬體綁定的應用許可證(License)失效,您需要自行做好檢查。 |
公網IP地址 | ECS執行個體的公網IP地址與Simple Application Server的公網IP地址不相同,如果您的ECS執行個體綁定了網域名稱,在遷移完成後,您需要重新將該網域名稱解析至Simple Application Server的公網IP。 |
步驟一:在Simple Application Server中安裝並配置aaPanel面板
本樣本建議您在Simple Application Server中,使用aaPanel面板高效地設定管理員運行環境,並保證運行環境的版本資訊與ECS執行個體中的一致。
在實際的遷移過程中,您需要根據業務的真實情況,手動設定Simple Application Server中的網站運行環境,以保證與ECS執行個體中的配置一致。
通過管理主控台遠端連線Simple Application Server。
具體操作,請參見遠端連線Linux伺服器。
- 運行以下命令,切換至
root使用者。sudo su root 安裝aaPanel面板。
您可以訪問aaPanel面板擷取適用於不同作業系統的安裝包。本文樣本中Simple Application Server的作業系統為CentOS 7.6,因此,需要運行以下命令,安裝寶塔面板免費版。
yum install -y wget && wget -O install.sh http://www.aapanel.com/script/install_6.0_en.sh && bash install.sh aapanel類似如下回顯資訊,表示已成功安裝aaPanel面板。您需要儲存aaPanel Internet Address、aaPanel Internal Address、username以及password資訊。
================================================================== Congratulations! Installed successfully! ================================================================== aaPanel Internet Address: https://8.218.XX.XX:7800/d55e4627 aaPanel Internal Address: https://172.19.XX.XX:7800/d55e4627 username: k6tzrhwj password: d2ae**** Warning: If you cannot access the panel, release the following port (7800|888|80|443|20|21) in the security group ================================================================== Time consumed: 1 Minute!在本地主機,通過瀏覽器訪問外網面板地址,然後使用username以及password資訊登入寶塔面板。
登入aaPanel面板後,您還需要登入aaPanel帳號。如果沒有aaPanel帳號則需要先註冊帳號,您根據實際的頁面提示即可完成操作。
成功登入面板後,介面如下圖所示。

在aaPanel面板中,搭建與ECS執行個體一致的運行環境。
在左側導覽列,單擊App Store。
在App Sort地區,單擊Deployment。
在軟體列表中分別找到以下應用,並單擊Operation列的Install。
Nginx
單擊Install後,選擇
nginx 1.16版本,然後單擊Submit。MySQL
單擊Install後,選擇
mysql 5.7版本,然後單擊Submit。PHP-7.0
單擊Install後,保持預設配置,然後單擊Submit。
phpMyAdmin
單擊Install後,選擇
phpmyadmin 4.9版本,然後單擊Submit。
安裝軟體需要一定的時間,請您耐心等待安裝完成。
在aaPanel面板中,添加網站資訊。
在左側導覽列,單擊Website。
在PHP Project頁簽,單擊Add site。
在Add site - Support batch site building對話方塊的Create site頁簽,完成配置,然後單擊Submit。
主要配置說明如下表所示,沒有提及的配置項保持預設配置。
配置項
說明
樣本
Domain name
如果您已將網域名稱綁定並解析至Simple Application Server,您可以直接設定網域名稱資訊。
如果您還沒有將網域名稱綁定並解析至Simple Application Server,您可以先設定為Simple Application Server的公網IP地址,用於後續的測試操作。待遷移完成後,再為Simple Application Server綁定並解析網域名稱,同時修改此處的配置。
本樣本中,僅設定了Simple Application Server的公網IP地址,用於後續對網站進行測試訪問。
Description
該網站的備忘資訊,可為空白。
本樣本中,設定為
server-B。Website Path
網站所在的根目錄資訊。aaPanel面板預設的根目錄均在/www/wwwroot路徑下。
本樣本中,設定為/www/wwwroot/wordpress。
成功添加網站後,如下圖所示。

在aaPanel面板面板中,完成MySQL資料庫的配置。
在左側導覽列,單擊Databases。
在Database Manager頁面,修改root密碼。
單擊Root password。
在Root password後的文字框中輸入自訂密碼,然後單擊Submit。
本樣本中,密碼設定為
Test@123。重要您在實際設定密碼時,請妥善儲存密碼資訊,避免因密碼泄露造成的伺服器異常風險。
在Database Manager頁面,單擊phpMyAdmin。
在phpMyAdmin頁面,輸入MySQL的
root使用者以及密碼,然後單擊執行。在頂部功能表列,單擊SQL。輸入以下命令,然後單擊執行。
遷移資料庫資料時,需要MySQL資料庫中的使用者具有遠端連線許可權,因此,您需要在Simple Application Server的MySQL資料庫中,設定一個用於遠端連線的MySQL使用者。
-- 切換資料庫至mysql。 use mysql; -- 本樣本中,用於遠端連線的MySQL使用者名稱為testUser,密碼為Test@123。 create user 'testUser'@'%' IDENTIFIED BY 'Test@123'; -- 為testUser授予遠端連線許可權。 grant all privileges on *.* to 'testUser'@'%' with grant option; -- 使配置立即生效。 flush privileges;在頂部功能表列,單擊SQL。輸入以下命令,然後單擊執行。
為了方便後續WordPress網站遷移後可以直接連接MySQL資料庫,您需要參考ECS執行個體中WordPress網站對應的MySQL資訊,在Simple Application Server建立完全一致的資料庫以及資料庫使用者。
本樣本中,ECS執行個體中的WordPress網站對應的MySQL資料庫名為
wordpress,資料庫使用者名稱為user,密碼為PASSword123.。-- 建立資料庫wordpress。 create database wordpress; -- 建立新使用者user,新使用者密碼為PASSword123.。 create user 'user'@'localhost' identified by 'PASSword123.'; -- 賦予使用者對資料庫wordpress的全部許可權。 grant all privileges on wordpress.* to 'user'@'localhost' identified by 'PASSword123.'; -- 使配置立即生效。 flush privileges;
在aaPanel面板面板中,完成防火牆配置。
在左側導覽列,單擊Security。
在Firewall地區,允許存取MySQL預設連接埠3306。
具體的配置資訊如下圖所示。

單擊Open。
步驟二:配置ECS執行個體
使用阿里雲資料轉送DTS遷移資料庫資料前,您需要在ECS執行個體中完成以下配置。
配置安全性群組。
遷移資料庫資料時,需要開放ECS執行個體安全性群組的指定連接埠。本樣本中ECS執行個體和Simple Application Server內安裝的資料庫均為MySQL資料庫,因此,您需要在ECS執行個體的安全性群組中開放MySQL預設佔用的3306連接埠。具體操作,請參見添加安全性群組規則。
配置MySQL。
遷移資料庫資料時,需要MySQL資料庫中的使用者具有遠端連線許可權,因此,您需要在ECS執行個體中,設定一個用於遠端連線的MySQL使用者。
遠端連線ECS執行個體。
具體操作,請參見串連方式概述。
運行以下命令,登入MySQL資料庫。
mysql -uroot -p在Enter password:後輸入MySQL的
root使用者對應的密碼。您需要輸入您自行部署的MySQL資料庫的登入密碼。
說明在輸入密碼時,系統為了最大限度地保證資料安全,命令列將不做任何回顯。您只需要輸入正確的密碼資訊,然後按Enter鍵即可。
運行以下命令,使用
wordpress資料庫。wordpress資料庫為WordPress網站的資料庫。use wordpress;運行以下命令,建立用於遠端連線的資料庫使用者。
本樣本中,使用者名稱為
testUser,密碼為Test@123。重要該密碼僅為樣本值。您需要自行設定密碼,並妥善保管,避免因密碼泄露造成的資料異常風險。
create user 'testUser'@'%' IDENTIFIED BY 'Test@123';- 依次運行以下命令,為
testUser授予遠端連線許可權。- 授予遠端連線許可權。
grant all privileges on *.* to 'testUser'@'%' with grant option; - 使配置立即生效。
flush privileges;
- 授予遠端連線許可權。
- 運行以下命令,退出MySQL。
\q;
步驟三:使用scp命令拷貝網站程式
確認Simple Application Server的資訊。
使用scp命令遠程拷貝網站程式時,需要設定目標伺服器的公網IP地址以及檔案儲存體路徑,因此,您需要確認Simple Application Server的以下資訊:
公網IP。
查看公網IP的具體操作,請參見查看伺服器卡片資訊。
網站根目錄。
本樣本中,Simple Application Server的網站根目錄為/www/wwwroot/wordpress。
遠端連線ECS執行個體。
具體操作,請參見串連方式概述。
運行以下命令,使用scp命令將ECS執行個體的網站程式遷移至Simple Application Server。
scp -r /usr/share/nginx/html/wordpress/* root@<Simple Application Server的公網IP>:/www/wwwroot/wordpressscp命令解析:
-r:表示遞迴拷貝整個目錄。如果您需要拷貝的是單個檔案,請去掉-r。/usr/share/nginx/html/wordpress/*:表示ECS執行個體中網站程式所在的檔案夾內的所有檔案(/*)。root@<Simple Application Server的公網IP>:通過SSH協議遠端連線Simple Application Server。/www/wwwroot/wordpress:表示Simple Application Server中的網站根目錄。
在root@<Simple Application Server的公網IP>'s password:後,輸入Simple Application Server的登入密碼。
說明在輸入密碼時,系統為了最大限度地保證資料安全,命令列將不做任何回顯。您只需要輸入正確的密碼資訊,然後按Enter鍵即可。
scp遠程拷貝檔案的資料轉送方式為加密傳輸,因此傳輸速率受限,您需要等待檔案拷貝完成。
步驟四:使用DTS遷移資料庫資料
- 登入資料轉送控制台。
在左側導覽列,單擊資料移轉,然後在頁面左上方,單擊建立任務。
完成遷移任務的配置。
主要配置說明如下,未提及的配置項保持預設配置。
任務名稱:自訂名稱。例如
test-swas-01。源庫資訊(即ECS執行個體資訊):
配置項
配置樣本
資料庫類型
選擇MySQL。
接入方式
選擇ECS自建資料庫。
執行個體地區
ECS執行個體所在的地區。例如:華東1(杭州)
是否跨阿里雲帳號
本樣本選擇不跨帳號。
ECS執行個體ID
選擇ECS執行個體ID。
連接埠
預設為
3306。資料庫帳號
輸入具有遠端連線許可權的資料庫帳號。例如:
testUser。資料庫密碼
Test@123
重要該密碼僅為樣本值,您需要自行設定密碼,並妥善保管,避免因密碼泄露造成的資料異常風險。
目標庫資訊(即Simple Application Server資訊):
配置項
配置樣本
資料庫類型
選擇MySQL。
接入方式
選擇公網IP。
執行個體地區
Simple Application Server所在的地區。例如:華東1(杭州)
網域名稱或IP地址
Simple Application Server的公網IP地址。
連接埠
預設為
3306。資料庫帳號
輸入具有遠端連線許可權的資料庫帳號。例如:
testUser。資料庫密碼
Test@123
重要該密碼僅為樣本值,您需要自行設定密碼,並妥善保管,避免因密碼泄露造成的資料異常風險。
配置完成後,單擊測試連接以進行下一步,測試各個伺服器的MySQL是否可以正常串連。
在彈出的DTS伺服器訪問授權對話方塊中,單擊測試連接以進行下一步。
在配置任務對象及進階配置嚮導中,配置相關參數後,單擊下一步進階配置。
主要參數說明如下表所示。更多資訊,請參見資料移轉操作指導。
任務步驟:根據業務需求,選中庫表結構遷移、全量遷移或者增量遷移。
源庫對象:在源庫對象地區,選中全選,並單擊
表徵圖。
操作完成後,正確的介面資訊如下圖所示。

在進階配置嚮導中,保持預設配置,單擊下一步儲存任務並預檢查。
您需要等待預檢查完畢,如果預檢查失敗,請單擊失敗後的查看詳情,根據失敗原因,解決後重新進行預檢查。
單擊下一步購買。

在購買嚮導頁面,選中《資料轉送(隨用隨付)服務條款》,然後單擊購買並啟動。
本樣本中通過DTS遷移資料的操作不計費,您在操作中需要以DTS控制台頁面的實際資訊為準。關於DTS計費的相關資訊,請參見計費概述。
啟動遷移任務後,您需要等待遷移任務完成。

步驟五:驗證資料移轉結果
在本地主機中,通過瀏覽器登入Simple Application Server的aaPanel面板。
查看WordPress網站程式檔案。
在aaPanel面板的左側導覽列,單擊Site。
在PHP Project頁面的列表中,單擊Document Root列下的網站根目錄。

如下圖所示,您可以查看到遷移後,Simple Application Server中存放的網站程式。

檢查網站程式是否存在問題。
您需要根據實際業務情境,自行檢查並判斷Simple Application Server中的網站程式是否與ECS執行個體中的一致。例如,在本樣本中,ECS執行個體中的wp-config.php檔案設定了軟連結。在遷移後,檔案的軟連結失效,因此檔案許可權發生了改變,需要修改Simple Application Server中的wp-config.php檔案許可權。
管理檔案的操作可以在aaPanel面板中完成。具體操作如下所示:
滑鼠懸浮至對應的檔案上,然後單擊PMSN。

在Set permission對話方塊,設定檔案的許可權,完成後單擊OK。
您需要根據實際的業務需求進行修改。本樣本中,為wp-config.php檔案授予了所有許可權。

查看WordPress網站對應的資料庫資訊。
在aaPanel面板的左側導覽列,單擊Databases。
單擊Get DB from server。
如下圖所示,可以擷取到Simple Application Server中資料庫WordPress的資訊。如果資料庫密碼擷取失敗,您可以單擊reset重設資料庫密碼。

在Operation列,單擊Tools,查看資料庫WordPress中的表資料資訊。
如下圖所示,Simple Application Server中的表資料資訊與ECS執行個體中一致。

在本地主機中,使用瀏覽器訪問
http://Simple Application Server的公網IP地址,測試訪問WordPress網站。如果WordPress網站訪問正常,且網站展示的資料與遷移前一致,表示遷移成功。

如果WordPress網站無法訪問,且提示“Warning: require_once(/www/wwwroot/wordpress/wp-config.php): failed to open stream: Permission denied in /www/wwwroot/wordpress/wp-load.php on line 37”,您需要根據報錯資訊,在對應檔案中設定相應的許可權。具體操作,請參見檢查網站程式是否存在問題。

相關操作
由於更換了伺服器,因此伺服器的公網IP發生了變化。如果您之前的伺服器中綁定並解析了網域名稱,則您在完成資料移轉後,需要在新的伺服器中重新綁定並解析網域名稱。具體操作,請參見綁定並解析網域名稱。