本文中含有需要您注意的重要提示信息,忽略該信息可能對您的業務造成影響,請務必仔細閱讀。
由于業務的需要,您可以將ECS實例中部署的網站程序遷移至輕量應用服務器。本文介紹如何遷移ECS實例至輕量應用服務器。
前提條件
已創建與ECS實例操作系統版本相同的輕量應用服務器。具體操作,請參見創建輕量應用服務器。
說明如果您已創建輕量應用服務器,但操作系統與ECS實例不同,您可以重置系統。具體操作,請參見重置系統。
輕量應用服務器的系統鏡像版本不如ECS實例公共鏡像版本全面,在實際的遷移過程中,您可以選擇接近的操作系統版本。例如,ECS實例使用的是CentOS 7.X版本的公共鏡像,您可以將輕量應用服務器的鏡像更換為CentOS 7.3或CentOS 7.6的系統鏡像。
輕量應用服務器已設置密碼。具體操作,請參見設置或重置服務器密碼。
已放行所需的端口。具體操作,請參見防火墻設置。
本示例中需放行MySQL的默認端口3306、寶塔面板的默認端口8888以及數據庫管理工具phpmyadmin默認端口888。
警告默認端口可能會導致服務器被入侵,建議您使用后及時禁用對應的端口或者將默認端口改為其他端口。
背景信息
本文的示例場景中,將已部署LNMP環境的ECS實例中WordPress網站遷移至輕量應用服務器,并保證網站可運行、數據完整。服務器和遷移涉及的工具說明如下:
服務器說明
ECS實例
輕量應用服務器
鏡像: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。
遷移涉及的工具
工具
說明
寶塔面板免費版
一款服務器運維面板。本文將借助寶塔面板,在輕量應用服務器中重新部署與ECS實例內一致的LNMP環境。
scp命令
該命令是基于SSH協議的遠程拷貝文件的命令。ECS實例中的網站程序(不包含數據庫數據)將通過scp命令拷貝至輕量應用服務器中。
阿里云數據傳輸DTS
ECS實例中網站程序的數據庫數據,將通過阿里云數據傳輸DTS遷移至輕量應用服務器的數據庫中。關于DTS的更多信息,請參見什么是數據傳輸服務DTS。
注意事項
創建快照以備份數據。
確保遷移前后兩臺服務器內的運行環境版本信息一致。
部分網站對服務器的運行環境的版本有較高的要求,如果遷移前后的運行環境版本不一致,可能導致網站無法正常運行,因此您需要完全了解您的ECS實例中運行環境的版本信息。例如,您的運行環境為LNMP環境,則您需要了解Nginx、MySQL以及PHP應用的版本信息,并保證在輕量應用服務器上重新部署相同應用版本的運行環境。
檢查網絡。
您需要確保ECS實例與輕量應用服務器具備公網訪問能力。如果是跨國際地域遷移,請注意由網絡環境不穩定造成的遷移速率過慢等問題。
遷移后影響
注意事項 | 說明 |
服務器內的授權應用 | ECS實例與輕量應用服務器處于不同的專有網絡VPC中,因此在遷移數據后,系統底層硬件設備會發生變化,可能會導致某些與硬件綁定的應用許可證(License)失效,您需要自行做好檢查。 |
公網IP地址 | ECS實例的公網IP地址與輕量應用服務器的公網IP地址不相同,如果您的ECS實例綁定了域名,在遷移完成后,您需要重新將該域名解析至輕量應用服務器的公網IP。 |
步驟一:在輕量應用服務器中安裝并配置寶塔面板
本示例建議您在輕量應用服務器中,使用寶塔面板高效地配置服務器運行環境,并保證運行環境的版本信息與ECS實例中的一致。
在實際的遷移過程中,您需要根據業務的真實情況,手動配置輕量應用服務器中的網站運行環境,以保證與ECS實例中的配置一致。
通過管理控制臺遠程連接輕量應用服務器。
具體操作,請參見遠程連接Linux服務器。
- 運行以下命令,切換至
root
用戶。sudo su root
安裝寶塔面板。
您可以訪問寶塔面板獲取適用于不同操作系統的安裝包。本文示例中輕量應用服務器的操作系統為CentOS 7.6,因此,需要運行以下命令,安裝寶塔面板免費版。
說明如果您的輕量應用服務器所用的鏡像為BT-Panel應用鏡像,請跳過安裝寶塔面板的步驟,直接配置寶塔面板。
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
如下圖所示,表示成功安裝寶塔面板。您需要保存外網面板地址、內網面板地址、username以及password信息。如需了解安裝寶塔面板的更多信息,請參見寶塔Linux面板安裝教程。
在本地主機,通過瀏覽器訪問外網面板地址,然后使用username以及password信息登錄寶塔面板。
登錄寶塔面板后,您還需要登錄寶塔賬號。如果沒有寶塔賬號則需要先注冊賬號,您根據實際的頁面提示即可完成操作。
成功登錄面板后,界面如下圖所示。
在寶塔面板中,搭建與ECS實例一致的運行環境。
在左側導航欄,單擊軟件商店。
在應用分類區域,單擊運行環境。
在軟件列表中分別找到以下應用,并單擊操作列的安裝。
Nginx
單擊安裝后,選擇
nginx 1.16
版本,然后單擊提交。MySQL
單擊安裝后,選擇
mysql 5.7
版本,然后單擊提交。PHP-7.0
單擊安裝后,保持默認配置,然后單擊提交。
phpMyAdmin
單擊安裝后,選擇
phpmyadmin 4.9
版本,然后單擊提交。
安裝軟件需要一定的時間,請您耐心等待安裝完成。
在寶塔面板中,添加站點信息。
在左側導航欄,單擊網站。
在網站管理頁面,單擊添加站點。
在添加站點-支持批量建站對話框的創建站點頁簽,完成配置,然后單擊提交。
主要配置說明如下表所示,沒有提及的配置項保持默認配置。
配置項
說明
示例
域名
如果您已將域名綁定并解析至輕量應用服務器,您可以直接設置域名信息。
如果您還沒有將域名綁定并解析至輕量應用服務器,您可以先設置為輕量應用服務器的公網IP地址,用于后續的測試操作。待遷移完成后,再為輕量應用服務器綁定并解析域名,同時修改此處的配置。
本示例中,僅設置了輕量應用服務器的公網IP地址,用于后續對網站進行測試訪問。
備注
該站點的備注信息,可為空。
本示例中,設置為
server-B
。根目錄
網站所在的根目錄信息。寶塔面板默認的根目錄均在/www/wwwroot路徑下。
本示例中,設置為/www/wwwroot/wordpress。
成功添加站點后,如下圖所示。
在寶塔面板面板中,完成MySQL數據庫的配置。
在左側導航欄,單擊數據庫。
在數據庫管理頁面,修改root密碼。
單擊root密碼。
在root密碼后的文本框中輸入自定義密碼,然后單擊提交。
本示例中,密碼設置為
Test@123
。重要您在實際設置密碼時,請妥善保存密碼信息,避免因密碼泄露造成的服務器異常風險。
在數據庫管理頁面,單擊phpMyAdmin。
在phpMyAdmin頁面,輸入MySQL的
root
用戶以及密碼,然后單擊執行。在頂部菜單欄,單擊SQL。輸入以下命令,然后單擊執行。
遷移數據庫數據時,需要MySQL數據庫中的用戶具有遠程連接權限,因此,您需要在輕量應用服務器的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信息,在輕量應用服務器創建完全一致的數據庫以及數據庫用戶。
本示例中,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;
在寶塔面板中,完成防火墻配置。
在左側導航欄,單擊安全。
在防火墻區域,放行MySQL默認端口3306。
具體的配置信息如下圖所示。
單擊放行。
步驟二:配置ECS實例
使用阿里云數據傳輸DTS遷移數據庫數據前,您需要在ECS實例中完成以下配置。
配置安全組。
遷移數據庫數據時,需要開放ECS實例安全組的指定端口。本示例中ECS實例和輕量應用服務器內安裝的數據庫均為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命令拷貝網站程序
確認輕量應用服務器的信息。
使用scp命令遠程拷貝網站程序時,需要設置目標服務器的公網IP地址以及文件存儲路徑,因此,您需要確認輕量應用服務器的以下信息:
公網IP。
查看公網IP的具體操作,請參見查看服務器卡片信息。
網站根目錄。
本示例中,輕量應用服務器的網站根目錄為/www/wwwroot/wordpress。
遠程連接ECS實例。
具體操作,請參見連接方式概述。
運行以下命令,使用scp命令將ECS實例的網站程序遷移至輕量應用服務器。
scp -r /usr/share/nginx/html/wordpress/* root@<輕量應用服務器的公網IP>:/www/wwwroot/wordpress
scp命令解析:
-r
:表示遞歸拷貝整個目錄。如果您需要拷貝的是單個文件,請去掉-r
。/usr/share/nginx/html/wordpress/*
:表示ECS實例中網站程序所在的文件夾內的所有文件(/*
)。root@<輕量應用服務器的公網IP>
:通過SSH協議遠程連接輕量應用服務器。/www/wwwroot/wordpress
:表示輕量應用服務器中的網站根目錄。
在root@<輕量應用服務器的公網IP>'s password:后,輸入輕量應用服務器的登錄密碼。
說明在輸入密碼時,系統為了最大限度地保證數據安全,命令行將不做任何回顯。您只需要輸入正確的密碼信息,然后按Enter鍵即可。
scp遠程拷貝文件的數據傳輸方式為加密傳輸,因此傳輸速率受限,您需要等待文件拷貝完成。
步驟四:使用DTS遷移數據庫數據
- 登錄數據傳輸控制臺。
在左側導航欄,單擊數據遷移,然后在頁面左上角,單擊創建任務。
完成遷移任務的配置。
主要配置說明如下,未提及的配置項保持默認配置。
任務名稱:自定義名稱。例如
test-swas-01
。源庫信息(即ECS實例信息):
配置項
配置示例
數據庫類型
選擇MySQL。
接入方式
選擇ECS自建數據庫。
實例地區
ECS實例所在的地域。例如:華東1(杭州)
是否跨阿里云賬號
本示例選擇不跨賬號。
ECS實例ID
選擇ECS實例ID。
端口
默認為
3306
。數據庫賬號
輸入具有遠程連接權限的數據庫賬號。例如:
testUser
。數據庫密碼
Test@123
重要該密碼僅為示例值,您需要自行設置密碼,并妥善保管,避免因密碼泄露造成的數據異常風險。
目標庫信息(即輕量應用服務器信息):
配置項
配置示例
數據庫類型
選擇MySQL。
接入方式
選擇公網IP。
實例地區
輕量應用服務器所在的地域。例如:華東1(杭州)
主機名或IP地址
輕量應用服務器的公網IP地址。
端口
默認為
3306
。數據庫賬號
輸入具有遠程連接權限的數據庫賬號。例如:
testUser
。數據庫密碼
Test@123
重要該密碼僅為示例值,您需要自行設置密碼,并妥善保管,避免因密碼泄露造成的數據異常風險。
配置完成后,單擊測試連接以進行下一步,測試各個服務器的MySQL是否可以正常連接。
在彈出的DTS服務器訪問授權對話框中,單擊測試連接以進行下一步。
在配置任務對象及高級配置向導中,配置相關參數后,單擊下一步高級配置。
主要參數說明如下表所示。更多信息,請參見數據遷移操作指導。
任務步驟:根據業務需求,選中庫表結構遷移、全量遷移或者增量遷移。
源庫對象:在源庫對象區域,選中全選,并單擊圖標。
操作完成后,正確的界面信息如下圖所示。
在高級配置向導中,保持默認配置,單擊下一步保存任務并預檢查。
您需要等待預檢查完畢,如果預檢查失敗,請單擊失敗后的查看詳情,根據失敗原因,解決后重新進行預檢查。
單擊下一步購買。
在購買向導頁面,選中《數據傳輸(按量付費)服務條款》,然后單擊購買并啟動。
本示例中通過DTS遷移數據的操作不計費,您在操作中需要以DTS控制臺頁面的實際信息為準。關于DTS計費的相關信息,請參見計費概述。
啟動遷移任務后,您需要等待遷移任務完成。
步驟五:驗證數據遷移結果
在本地主機中,通過瀏覽器登錄輕量應用服務器的寶塔面板。
查看WordPress網站程序文件。
在寶塔面板的左側導航欄,單擊網站。
在網站管理頁面的列表中,單擊根目錄列下的網站根目錄。
如下圖所示,您可以查看到遷移后,輕量應用服務器中存放的網站程序。
檢查網站程序是否存在問題。
您需要根據實際業務場景,自行檢查并判斷輕量應用服務器中的網站程序是否與ECS實例中的一致。例如,在本示例中,ECS實例中的wp-config.php文件設置了軟鏈接。在遷移后,文件的軟鏈接失效,因此文件權限發生了改變,需要修改輕量應用服務器中的wp-config.php文件權限。
管理文件的操作可以在寶塔面板中完成。具體操作如下所示:
鼠標懸浮至對應的文件上,然后單擊權限。
在設置權限對話框,設置文件的權限,完成后單擊確定。
您需要根據實際的業務需求進行修改。本示例中,為wp-config.php文件授予了所有權限。
在本地主機中,使用瀏覽器訪問
http://輕量應用服務器的公網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發生了變化。如果您之前的服務器中綁定并解析了域名,則您在完成數據遷移后,需要在新的服務器中重新綁定并解析域名。具體操作,請參見綁定并解析域名。