动态

详情 返回 返回

從0到1教你在AWS中部署動態網站Typecho系統 - 动态 详情

Typecho 是使用 PHP 語言開發的一套博客程序,同時也支持多種數據庫(Mysql, PostgreSQL, SQLite),本篇文章將演示部署Typecho到aws上的過程。

在部署之前需要了解所需要的依賴

  • EC2(亞馬遜彈性雲計算,Elastic Cloud Compute,簡稱 EC2)
  • RDS(亞馬遜關係型數據庫服務,Relational Database Service,簡稱 RDS)
  • LNMP(Linux、Nginx、MySQL、PHP。此處不需要單獨安裝MySQL)

開通EC2

在AWS的控制枱中,啓動一個Linux系統的EC2實例,我選擇了Ubuntu的鏡像。

符合條件的免費套餐是 AWS 海外區域賬户免費套餐,可以通過此鏈接 進行註冊,探索 100 餘種產品,並使用免費套餐在 AWS 上開始構建。

image-20220316091325573.png

安全組默認只開啓了22端口,測試時可以選擇默認開啓所有安全組,或者添加常用的端口到安全組中。

審核後如果沒有問題,點擊啓動

image-20220316091642961.png

接着需要選擇選擇現有密鑰對或者創建新的密鑰對來使用ssh進行連接,否則只能通過AMI內置的密碼或者 EC2 Instance Connect 進行連接訪問。

可以使用現有的密鑰對,我這裏創建了一個新的,填入密鑰對名稱,點擊下載密鑰對,就可以得到一個密鑰名稱.pem文件。

再次點擊啓動,至此,我們所創建的實例正在啓動中。

點擊查看實例詳情,獲取公有 IPv4 DNS進行連接:

image-20220316092739737.png

例如實例的公有 DNS 名稱是ec2-a-b-c-d.us-west-2.compute.amazonaws.com,密鑰對是my_ec2_private_key.pem,請使用以下命令通過 SSH 連接到實例:

ssh -i my_ec2_private_key.pem ubuntu@ec2-a-b-c-d.us-west-2.compute.amazonaws.com
更多具體的實操過程可以參考《手把手教你在雲上部署動態網站》

安裝LNMP

我選擇了直接使用LNMP一鍵安裝包

wget http://soft.vpser.net/lnmp/lnmp1.8.tar.gz -cO lnmp1.8.tar.gz && tar zxf lnmp1.8.tar.gz && cd lnmp1.8 && ./install.sh lnmp

腳本需要使用root用户執行,所以我們需要先設置下root用户的密碼

sudo passwd root

使用su root切換到root用户,再次執行./install.sh lnmp

在安裝時跳過了安裝MySQL,因為我們需要使用RDS,所以不需要安裝。

image-20220316102435535.png

等待安裝完成即可...

安裝完成後可以訪問http://IP/phpinfo.php 來查看PHP的信息。

安裝Typecho

Typecho的正式穩定版已經很久沒有發佈了,我最近也在為Typecho貢獻一些代碼,所以這裏我們優先安裝開發版的代碼。

先使用lnmp vhost add命令來創建一個站點:

image-20220316111346410.png

創建完成後,默認有一個禁止跨目錄訪問的.user.ini,可以通過lnmp1.8目錄下的tools/remove_open_basedir_restriction.sh腳本進行移除

./remove_open_basedir_restriction.sh

image-20220316112619289.png

進入到/home/wwwroot/ty.qq52o.cn目錄中下載開發版的源碼:

cd /home/wwwroot/ty.qq52o.cn
wget https://github.com/typecho/typecho/releases/download/ci/typecho.zip
unzip typecho.zip
chown -R www:www ./*

為了能正常訪問到安裝程序,需要將域名解析到EC2的IP上,所以前往域名所在的服務商添加解析,將對應的域名添加一個cname解析,記錄值為公有 IPv4 DNS

解析成功後訪問就可以看到Typecho所提供的安裝界面

image-20220316112132926.png

點擊開始下一步,我們就需要配置數據庫信息了,但是由於目前沒有安裝,所以我們可以先使用SQLite進行創建,會默認生成一個SQLite的數據庫文件地址,點擊進行安裝即可。

下一步則需要添加管理員的賬號密碼了

image-20220316112956033.png

點擊繼續安裝後,就完成了安裝步驟。

image-20220316113046579.png

默認首頁

image-20220316113115173.png

控制枱

image-20220316113157364.png

看到這裏,還沒有結束,因為我們使用的是SQLite存儲,我們需要替換為MySQL存儲,繼續往下看吧

開通RDS

前往aws的控制枱的RDS服務,創建一個MySQL引擎的數據庫

image-20220316113507866.png

在下面的配置中選擇實例配置,設置賬户密碼,點擊創建數據庫,等待數據庫創建成功獲取終端節點和端口。

需要注意數據庫需要和EC2在同一VPC 安全組中。

由於我們剛才使用的是SQLite,選擇需要使用MySQL,所以需要將文件刪除來重新安裝:

cd /home/wwwroot/ty.qq52o.cn
#filename為剛才創建時自動生成的SQLite文件
rm usr/filename.db config.inc.php

重新訪問域名,又會出現剛才看見的安裝界面了,輸入剛才獲取的終端節點和端口,以及所配置的賬號密碼:

image-20220316130456401.png

當我們點擊開始安裝後卻報錯了:對不起, 無法連接數據庫, 請先檢查數據庫配置再繼續進行安裝

這個表示不存在這個數據庫名為typecho的 database,所以我們需要手動創建一下

#安裝mysql client
apt install mysql-client-core-5.7 

#連接數據庫 將終端節點替換為實際的 回車後輸入密碼再次回車進入數據庫
mysql -uadmin -h終端節點 -p

#執行
create database typecho;

執行成功後,再次點擊開始安裝就又見到了創建您的管理員帳號頁面,按照之前的步驟填寫即可。

安裝成功後就可以盡情享用 Typecho 帶來的樂趣~

Typecho 不但輕量高效,僅僅 7 張數據表,加上不足 400KB 的代碼,就實現了完整的插件與模板機制。而且原生支持 Markdown 排版語法,易讀更易寫。

加上使用 EC2 + RDS,即使面對突如其來的高訪問量,也能輕鬆應對,提供所需的快速性能、高可用性、安全性。

獲取更多教程:AWS 入門基礎課程

Add a new 评论

Some HTML is okay.