基於函式計算實現快速建站
本教程介紹基於函式計算和WordPress實現快速建站。
場景體驗目標
本場景將介紹使用函式計算產品 Function Compute快速部署一個 wordpress 網站。
在這個場景中你將學到:serverless web 新的開發模式,包括FUN 工具一鍵初始化 NAS、 同步網站到 NAS、一鍵部署等能力。體驗函式計算的開發敏捷特性、自動彈性伸縮能力、免運維和完善的監控設施。
背景知識
本場景主要涉及以下雲產品和服務:
雲伺服器ECS
雲伺服器(Elastic Compute Service,簡稱ECS)是阿里雲提供的效能卓越、穩定可靠、彈性擴充套件的IaaS (Infrastructure as a Service)級別雲端計算服務。雲伺服器ECS免去了您採購IT硬體的前期準備,讓您像使用水、電、天然氣等公共資源一樣便捷、高效地使用伺服器,實現計算資源的即開即用和彈性伸縮。阿里雲ECS持續提供創新型伺服器,解決多種業務需求,助力您的業務發展。
Wordpress
WordPress是使用PHP語言開發的部落格平臺,使用者可以在支援PHP和MySQL資料庫的伺服器上架設屬於自己的網站。也可以把WordPress當作一個內容管理系統(CMS)來使用。
函式計算Function Compute
函式計算Function Compute是事件驅動的全託管計算服務。使用函式計算,您無需採購與管理伺服器等基礎設施,只需編寫並上傳程式碼。函式計算為您準備好計算資源,彈性地可靠地執行任務,並提供日誌查詢、效能監控和報警等功能。函式計算幫助您無需管理伺服器(Serverless),僅專注於函式程式碼就能快速搭建應用。函式計算能夠彈性地伸縮,您只需要按使用量付費。
實驗詳情
連線ECS伺服器
1.開啟終端工具。
- Windows:CMD或Powershell。
- MAC:Terminal。
2.在終端中輸入連線命令ssh [username]@[ipaddress]。您需要將其中的username和ipaddress替換為第1小節中建立的ECS伺服器的登入名和公網地址。例如:
ssh [email protected]
命令顯示結果如下:
3.輸入yes。
4.同意繼續後將會提示輸入登入密碼。 密碼為已建立的雲服務的ECS的登入密碼。
登入成功後會顯示如下資訊。
開通函式計算服務和日誌服務
在使用函式計算前,您需要在控制檯開通服務,具體步驟如下。
1.在頁面左側資源欄點選一鍵複製登入url
2.開啟瀏覽器隱身視窗(無痕模式),貼上已複製的url地址前往RAM使用者登入介面 。
3.在RAM使用者登入頁面,輸入雲產品資源提供的子使用者名稱稱點選 【下一步】
跳轉後輸入子使用者密碼,並點選 【登入】 。
4.在阿里雲管理控制檯,點選頂部【產品與服務】 ,然後點選【函式計算】 ,進入服務開通頁面。
選擇資源提供的地域,勾選函式計算服務協議,點選【立即開通】。
開通成功頁面如下。
5.在阿里雲管理控制檯,點選頂部【產品與服務】 ,然後點選【日誌服務】 ,進入服務開通頁面。
點選【建立簡單日誌】。
點選【立即開通】。
開通成功頁面如下。
安裝MySQL資料庫
由於使用wordpress搭建雲上部落格,需要使用MySQL資料庫儲存資料,所以這一步我們安裝一下MySQL。
1.執行如下命令,下載並安裝MySQL官方的Yum Repository
wget http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm yum -y install mysql57-community-release-el7-10.noarch.rpm yum -y install mysql-community-server
2.執行以下命令,啟動 MySQL 資料庫。
systemctl start mysqld.service
3.執行如下命令,檢視MySQL初始密碼。
grep "password" /var/log/mysqld.log
4.執行以下命令,登入資料庫。
mysql -uroot -p
5.執行以下命令,修改MySQL預設密碼。
set global validate_password_policy=0; #修改密碼安全策略為低(只校驗密碼長度,至少8位)。 ALTER USER 'root'@'localhost' IDENTIFIED BY '12345678';
6.執行以下命令,授予root使用者遠端管理許可權。
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '12345678';
7.執行如下命令,建立wordpress庫。
create database wordpress;
8.執行以下命令,檢視是否建立成功。
show databases;
9.輸入exit退出資料庫。
安裝Fun工具
Fun是一個用於支援Serverless應用部署的工具,能幫助您便捷地管理函式計算、API 閘道器和日誌服務等資源。它通過一個資源配置檔案(template.yml),協助您進行開發、構建和部署操作。
1.將Fun的安裝包下載到本地。請將下面的FUN_VERSION變數的值設定為最新版本號,最新版本號請參見Releases。以下操作將在ECS伺服器上安裝和配置Fun。
cd / FUN_VERSION="v3.6.1" curl -o fun-linux.zip https://gosspublic.alicdn.com/fun/fun-$FUN_VERSION-linux.zip
2.安裝解壓工具unzip,並使用unzip將下載的Fun安裝包解壓到當前目錄。
yum -y install unzip unzip fun-linux.zip
3.將解壓出來的可執行檔案移動到系統路徑。
mv fun-*-linux /usr/local/bin/fun
4.配置Fun關聯的阿里雲賬號和呼叫SDK的超時時間等資訊。
fun config
請參考以下資訊輸入您的阿里雲賬號ID、AccessKeyID和AccessKey金鑰等資訊。
- Aliyun Account ID:子使用者名稱稱中
@
符號後面部分就是給您分配的主賬號ID,例如u-zftb79nc@105997185439****
中包含的賬號ID為105997185439****
。 - Aliyun Access Key ID和Aliyun Access Key Secret:請使用平臺提供給您的子賬號AK ID和AK Secret。
- Default region name:使用雲平臺給您提供的地域ID,例如:ECS例項的地域為
華東2(上海)
,那麼這裡就選擇cn-shanghai
。
- The timeout in seconds for each SDK client invoking:建議將超時時間設定長一點(例如1000),防止在上傳部署包時發生超時中斷。
下載專案工程
1.執行以下命令,安裝Git。
yum -y install git
2.執行以下命令,使用Git下載專案程式碼。
git clone https://github.com/awesome-fc/fc-wordpress.git
建立NAS檔案系統掛載點
1.返回管理控制檯,搜尋NAS,然後單擊【檔案儲存NAS】,登入NAS控制檯。
2.選擇【檔案系統】>【檔案系統列表】。
3.選擇資源所在地域,找到資源資訊欄中的NAS檔案系統ID對應的檔案系統,單擊【更多】>【添加掛載點】。
4.在【添加掛載點】頁面,配置如下引數。
5.檢視掛載點地址,如下圖。
使用MySQl資料庫初始化
1.執行以下命令,進入fc-web-mysql目錄。
cd fc-wordpress/fc-web-mysql/
2.編輯template.yml檔案。
a. 執行以下命令進入編輯頁面。
vim template.yml
b.輸入i
進入編輯模式。
c. 修改NAS掛載配置。預設auto方式將會自動建立NAS檔案系統,這裡我們修改填寫為平臺預建立好的NAS檔案系統的資訊。
Description: 'run wordpress on FC' Policies: - AliyunECSNetworkInterfaceManagementAccess VpcConfig: VpcId: 'vpc-uf6a****baqyep5k' VSwitchIds: [ 'vsw-uf6t****l2lvdc6j7u' ] SecurityGroupId: 'sg-uf6****q4p2mhi30' NasConfig: UserId: 10003 GroupId: 10003 MountPoints: - ServerAddr: '35****4a-mcr95.cn-shanghai.nas.aliyuncs.com:/' MountDir: '/mnt/auto'
修改的引數說明如下:
VpcConfig
中的VpcId、VSwitchId和SecurityGroupId資訊請到ECS控制檯的例項詳情頁檢視。
ServerAddr
的值修改為步驟三中的掛載點地址。
修改後如下圖所示:
d. 修改LogConfig
中的Project
,任意取一個不會重複的名字即可,如下圖。
說明圖種兩個標記處的專案名稱須保持一致。
e. 按Esc
鍵退出編輯模式,輸入:wq
儲存退出。
3.執行以下命令,初始化NAS。
fun nas init
4.由於教程中使用的是自定義NAS服務,所以需要修改專案預設位置。
a. 執行以下命令,查詢MAS對應專案位置。
fun nas info
執行結果如下。
b. 複製專案到自定義NAS對應位置。
mv /root/fc-wordpress/fc-web-mysql/.fun/nas/auto-default/fc-wp-mysql/wordpress /root/fc-wordpress/fc-web-mysql/.fun/nas/3c2264900a-pel65.cn-shanghai.nas.aliyuncs.com/
命令解析。
- 命令前半部分
/root/fc-wordpress/fc-web-mysql/.fun/nas/auto-default/fc-wp-mysql/wordpress
為預設專案位置。 - 命令後半部分
/root/fc-wordpress/fc-web-mysql/.fun/nas/3c2264900a-pel65.cn-shanghai.nas.aliyuncs.com/
為自定義NAS專案位置,即命令fun nas info
的查詢結果。
5.執行以下命令,用於初始化臨時域名。
fun deploy -y
輸入Y
繼續。
在命令列結果輸出中會有一個可用的臨時域名, 如上圖中的19022215-1857668598503489.test.functioncompute.com,記錄這個域名。
6.編輯index.php檔案。
a. 執行以下命令進入編輯頁面。
vim index.php
b. 輸入i
進入編輯模式。
c. 修改$host屬性的值為步驟4中記錄的域名。
d. 按Esc鍵退出編輯模式,輸入:wq儲存退出。
7.執行以下命令,上傳wordpress網站到 NAS
fun nas sync fun nas ls nas://fc-wp-mysql/mnt/auto/
8.再次執行fun deploy
命令,完成最終部署。
fun deploy
執行結果如下。
配置MySQL資料庫
開啟瀏覽器,在瀏覽器中輸入Fun生成的臨時域名進行最後配置,例如:19022215-1857668598503489.test.functioncompute.com。
1.在瀏覽器的 WordPress 初始化視窗,選擇簡體中文,點選Continue。
2.單擊現在就開始!,進入下一步。
3.使用步驟三的MySQL資料庫配置如下資訊。
說明此處可能會有下載彈窗,請不必理會,點選取消重新提交。
4.在新跳轉的頁面中,單擊現在安裝進入下一步。
完成安裝
1.在瀏覽器的WordPress初始化視窗,選擇簡體中文,點選Continue。
2.根據實際需求配置以下資訊,單擊安裝WordPress完成Wordpress初始化。
3.單擊登入進行登入。
4.使用上一步配置的使用者名稱和密碼登入WordPress。
5.登入後,您就可以新增部落格進行釋出了。