幾個(gè)月前民泵,基于 Hexo 和 GiHub Pages 服務(wù)構(gòu)建了自己的靜態(tài)博客,期間也寫了 20 多篇博文溃列,從博客搭建以及博文的撰寫體驗(yàn)來講例证,這套方案還是相當(dāng)不錯(cuò)的。搭建過程中需要一些專業(yè)知識(shí)但也不難冠句,最重要的是免費(fèi)轻掩!但是,我始終還是想要搭建一個(gè)動(dòng)態(tài)的博客懦底。因此唇牧,這段時(shí)間基于阿里云服務(wù)器和 Ghost 重新搭建了個(gè)人博客,現(xiàn)通過這篇博文記錄博客的搭建過程聚唐。
準(zhǔn)備工作
- 云服務(wù)器:在阿里云上重新創(chuàng)建一個(gè)新號(hào)并申請(qǐng)了 6 個(gè)月的免費(fèi)云服務(wù)器丐重,操作系統(tǒng)使用的
Ubuntu 16.04.3
申請(qǐng)時(shí)有一點(diǎn)需要注意:服務(wù)器和彈性域名需要選在同一個(gè)區(qū)域,否則無法綁定杆查。服務(wù)器申請(qǐng)下來后扮惦,需要給服務(wù)器添加安全組,支持 80 端口亲桦,填0.0.0.0/0
允許所有 ip 訪問 80 端口崖蜜。 - 域名:域名之前已經(jīng)申請(qǐng)并解析浊仆,購買的是萬網(wǎng)的域名。
- 備案:服務(wù)器和域名準(zhǔn)備好后直接開始申請(qǐng)備案豫领,阿里云上提供了備案服務(wù)抡柿,總的來說備案還是比較容易的。注意:域名需要關(guān)閉隱私保護(hù)等恐,網(wǎng)站名稱不能包含人名洲劣、地名等諸多信息。
開始搭建 Ghost
以上的一些準(zhǔn)備工作完成以后课蔬,我正式開始了博客的搭建工作闪檬。
創(chuàng)建新用戶
首先使用 ssh 連接上服務(wù)器:ssh root@<ip>
,密碼為申請(qǐng)服務(wù)器時(shí)設(shè)置的密碼购笆。連接上服務(wù)器后粗悯,首先使用 adduser <username>
命令創(chuàng)建一個(gè)新用戶,避免什么東西都使用 root
跑同欠。但是样傍,有時(shí)候我們還是需要管理員權(quán)限去執(zhí)行一些任務(wù),因此可以通過 usermod -aG sudo <username>
給用戶添加 sudo
權(quán)限铺遂。
SSH 免密登錄
每次連接服務(wù)器都需要輸入密碼實(shí)在是一件痛苦的事情衫哥,因此在創(chuàng)建完新用戶后,配置一下 SSH 免密的登錄襟锐。先使用 ssh-keygen -t rsa
生成密鑰對(duì)(我直接使用了之前連接 GitHub 時(shí)生成的密鑰對(duì))撤逢,然后將公鑰中的內(nèi)容寫入到服務(wù)器 ~/.ssh/authorized_keys
中即可,注意添加 authorized_keys 的 600 權(quán)限粮坞。至于如何上傳公鑰蚊荣,這里提供兩種方法:
- 使用
ssh-copy-id <username>@ip
上傳。 - 先通過
scp <id_rsa.pub> <username>@ip:~
將公鑰上傳到服務(wù)器莫杈,然后使用cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
將公鑰追加到 authorized_keys 文件中互例。
安裝 Ghost 運(yùn)行環(huán)境
- node:Ghsot 不推薦使用 nvm 安裝 node,否則會(huì)造成一些權(quán)限問題筝闹。安裝方法參考:https://github.com/nodesource/distributions#deb 媳叨。
- nginx:使用
apt-get
安裝,先執(zhí)行sudo apt-get update
和sudo apt-get upgrade
更新关顷,然后使用sudo apt-get install nginx
下載 nginx糊秆。 - mysql:
sudo apt-get install mysql-server
。
安裝 Ghost
Ghost 的安裝使用的是官方的腳手架工具 sudo npm i -g ghost-cli
议双。腳手架工具安裝完畢后痘番,創(chuàng)建一個(gè)安裝 ghost 的目錄,官方建議的是 /var/www/ghost
聋伦,目錄創(chuàng)建完成后夫偶,進(jìn)入到該目錄下執(zhí)行 ghost install
命令即可開始安裝界睁,安裝過程中根據(jù)提示操作即可觉增。具體安裝方法見官方文檔兵拢。
Ghost 的使用
安裝完成后,在 ghost 所在目錄下執(zhí)行 ghost start
命令即可啟動(dòng)逾礁,更多腳手架命令戳這里说铃。
啟動(dòng)后無法訪問的問題
我在實(shí)際操作過程中在這里遇到了一個(gè)問題:?jiǎn)?dòng) ghost 后通過 http://blog.whezh.com 和 ip
都無法訪問 ghost。通過域名無法訪問的原因是因?yàn)闆]有備案嘹履,但是為什么直接通過 ip
也無法訪問呢腻扇?
起初我還以為是服務(wù)器防火墻的原因,但是即使我開放了相應(yīng)端口后也還是無法訪問砾嫉。這里的原因其實(shí)并沒有那么復(fù)雜幼苛,ghost 在啟動(dòng)后監(jiān)聽了 2368
端口,然后配置 nginx 進(jìn)行對(duì)外服務(wù)焕刮,而我在配置的時(shí)候設(shè)置了 server_name
為 blog.whezh.com
舶沿,這樣是無法通過 ip 來匹配的,因此無法訪問配并。
但是括荡,現(xiàn)在域名也還沒有備案,應(yīng)該如何訪問呢溉旋?我們只需要修改配置畸冲,將 server_name
設(shè)置為服務(wù)器 ip 即可,我們需要修改 ghost 和 nginx 的配置观腊。其中 ghost 需要修改根目錄下的 config.production.json
文件中的 server.host
字段邑闲,而 nginx 則修改 /etc/nginx/sites-available
下相應(yīng)配置文件的 server_name
字段。修改完成后梧油,重啟 nginx 和 ghost 就能通過 ip 正常訪問了监憎,注意備案成功后修改回來。
基本用法
配置好了之后婶溯,通過瀏覽器訪問對(duì)應(yīng) ip 即可看到博客頁面鲸阔,訪問 /ghost
可以進(jìn)入到博客管理后臺(tái)。在后臺(tái)頁面可以管理文章迄委、博客配置褐筛、代碼注入等等操作。
總結(jié)
Ghost 十分輕量叙身,用起來感覺很舒服渔扎,并且搭建起來也很簡(jiǎn)單,今后我打算一直使用它來撰寫自己的博客信轿。目前唯一不好的就是可用的主題不是特別多晃痴,也沒有自己喜歡的残吩,因此考慮自己基于默認(rèn)的主題重新開發(fā),主要是文章頁進(jìn)行修改(ps: 我超級(jí)喜歡 Casper 的主頁卡片)倘核。