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 上開始構建。
安全組默認只開啓了22端口,測試時可以選擇默認開啓所有安全組,或者添加常用的端口到安全組中。
審核後如果沒有問題,點擊啓動
接着需要選擇選擇現有密鑰對或者創建新的密鑰對來使用ssh進行連接,否則只能通過AMI內置的密碼或者 EC2 Instance Connect 進行連接訪問。
可以使用現有的密鑰對,我這裏創建了一個新的,填入密鑰對名稱,點擊下載密鑰對,就可以得到一個密鑰名稱.pem文件。
再次點擊啓動,至此,我們所創建的實例正在啓動中。
點擊查看實例詳情,獲取公有 IPv4 DNS進行連接:
例如實例的公有 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,所以不需要安裝。
等待安裝完成即可...
安裝完成後可以訪問http://IP/phpinfo.php 來查看PHP的信息。
安裝Typecho
Typecho的正式穩定版已經很久沒有發佈了,我最近也在為Typecho貢獻一些代碼,所以這裏我們優先安裝開發版的代碼。
先使用lnmp vhost add命令來創建一個站點:
創建完成後,默認有一個禁止跨目錄訪問的.user.ini,可以通過lnmp1.8目錄下的tools/remove_open_basedir_restriction.sh腳本進行移除
./remove_open_basedir_restriction.sh
進入到/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所提供的安裝界面
點擊開始下一步,我們就需要配置數據庫信息了,但是由於目前沒有安裝,所以我們可以先使用SQLite進行創建,會默認生成一個SQLite的數據庫文件地址,點擊進行安裝即可。
下一步則需要添加管理員的賬號密碼了
點擊繼續安裝後,就完成了安裝步驟。
默認首頁
控制枱
看到這裏,還沒有結束,因為我們使用的是SQLite存儲,我們需要替換為MySQL存儲,繼續往下看吧
開通RDS
前往aws的控制枱的RDS服務,創建一個MySQL引擎的數據庫
在下面的配置中選擇實例配置,設置賬户密碼,點擊創建數據庫,等待數據庫創建成功獲取終端節點和端口。
需要注意數據庫需要和EC2在同一VPC 安全組中。
由於我們剛才使用的是SQLite,選擇需要使用MySQL,所以需要將文件刪除來重新安裝:
cd /home/wwwroot/ty.qq52o.cn
#filename為剛才創建時自動生成的SQLite文件
rm usr/filename.db config.inc.php
重新訪問域名,又會出現剛才看見的安裝界面了,輸入剛才獲取的終端節點和端口,以及所配置的賬號密碼:
當我們點擊開始安裝後卻報錯了:對不起, 無法連接數據庫, 請先檢查數據庫配置再繼續進行安裝
這個表示不存在這個數據庫名為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 入門基礎課程