1. 程式人生 > 實用技巧 >基於函式計算實現快速建站

基於函式計算實現快速建站

本教程介紹基於函式計算和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.登入後,您就可以新增部落格進行釋出了。