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 入門基礎課程