Re:從零開始的博客搭建

看到同學有個人博客,心里癢癢的,想著也搞一個去,但是網上的博客都是在別人服務器上,感覺太被動,我不喜歡。就去百度了下建站的過程,好像...并不難的樣子

于是,開搞!

期間踩了無數坑,百度和谷歌了無數次,軟件裝了又卸,卸了又裝,連服務器系統都重裝3次

算是對的起標題的 "RE" 了。寫這篇文章是打算記錄下我搭建的過程,也算是個備忘錄吧,個人的記性實在是不好,不知道什么時候就忘了

搭建的事前準備

  1. 一個獨立域名
  2. 一臺linux計算機,不管是自己的還是別人的(服務器空間)

購買域名

購買域名的目的是人別人更好的記住你的博客,雖然Hexo靜態博客不綁定自己的域名也可以通過Github分配給你的永久連接訪問,個人建議還是買一個獨立域名,說不定別人就被你與(diao)眾(zha)不(tian)同的域名吸引了呢~

域名首選以.com為后綴的,國際通用,簡單好用,如何購買請自行百度或谷歌“域名購買”或“域名注冊”,網上有非常多非常詳細的教程,這里就不敘述了。

購買服務器空間

由于Hexo博客是部署在Github的倉庫上的,可以不使用服務器,但是我這里的小水管基本等同于沒有,更重要的在我瘋狂百度時領到了一張tx的代金券,so...就買了tx的云服務器,還送了個一年的域名

所以,不想增加開銷的可以跳過這步,使用自己的電腦搭建,但是需要用到Node.js,所以

不要使用Windows!!!

不要使用Windows!!!

不要使用Windows!!!

Windows版的Node.js根本就是殘疾版,別問我什么知道...

回歸正題,服務器空間有一般有以下幾種

  • 虛擬主機
  • VPS
  • 云主機
  • 獨立服務器

想要了解各個的優缺點及差異,可以看看下面的介紹

虛擬主機、VPS和云服務器的特點與差異性? ———— 知乎

全面解析:虛擬主機、獨立服務器、VPS及云主機 ———— 億恩IDC資訊

我買的就是屬于云主機,多虧是云主機,讓我省了不少事。

還有,構架在大陸的且用于網站服務器的空間是一定要備案的,不想麻煩的話可以購買香港或國外的空間。但是這里我們并不是用于網站的服務器作用,只是將markdown解析成靜態html頁面,然后再部署到github倉庫上,所以并不需要備案。

服務器空間的選擇實在是太多了,個人也沒什么推薦,只知道亞馬遜AWS可以免費使用一年,其他的可自行百度或谷歌。

正式開始

接下來就正開始我們的Hexo博客搭建。

服務器設置

有了服務器之后需要對服務器進行一系列設置。

首先,重裝系統,一個合適的系統會讓你的操作更加得心應手。

選擇合適自己的操作系統,我選了Debian 9,因為習慣了了Ubuntu,apt-get 命令實在是太方便了。重裝系統后,root的密碼是不變的,這點謹記。

設置安全組,讓必要的端口暴露出來。tx的云主機為了安全,設置了安全組,只有在安全組之內的端口才能夠使用。

關于更多安全組的信息,請參見 幫助與文檔 ———— 騰訊云

遠程登錄服務器空間

一般使用SSH遠程登錄到服務器,Winows下常用的遠程登錄軟件有PuTTY和Xshell,前者為自由軟件,后者為商業軟件,可以根據自己的喜好選擇,這里選用Xshell作為介紹,PuTTY也是大同小異。

打開Xshell,新建會話

確定之后就可以使用可以空間商給你提供的賬號和密碼登錄了。

創建新用戶

一般來說,不建議使用root用戶來搭建Hexo博客,很有可能會發現不可預料的錯誤,甚至是只有你才會發生的問題,別人都沒有,百度和谷歌都找不到解決辦法。為了避免這些問題,我們需要一個不是root用戶但是有管理員權限的用戶。

在root用戶下,新建git用戶(用戶名可以自己取,但是要好記)

adduser git

修改系統文件權限

chmod 740 /etc/sudoers

使用Vim編輯器打開

vim /etc/sudoers

找到

# User privilege specification
root    ALL=(ALL:ALL) ALL

在這下面添加一行

git ALL=(ALL) ALL

保存后退出,更改回原來的權限

chmod 400 /etc/sudoers

然后為你的新用戶設置密碼

passwd git

好了,一個有權限的用戶就新建完成了。

Hexo環境配置

切換git用戶,后面的操作都在git下進行,遇到需要權限的只需要在前面加上 sudo 就行

su git

安裝 Node.js 8

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs

安裝 Git

sudo apt-get install git-all

Hexo安裝及初始化

安裝完上面的必要軟件后就可以安裝Hexo了。使用npm命令安裝Hexo。

sudo npm install -g hexo-cli

選擇初始化Hexo的目錄,一般目錄都會選擇自己的家目錄下。進入家目錄

cd ~

初始化Hexo,Hexo將會在指定目錄下新建所需要的文件,<folder> 即目錄名。

Hexo init <folder>
cd <folder>
sudo npm install

一般都會用 blog 作為目錄名,所以

Hexo init blog
cd blog
sudo npm install

新建完成后,blog的目錄結構如下

.
├── _config.yml
├── package.json
├── scaffolds
├── source
|   ├── _drafts
|   └── _posts
└── themes

如果你的目錄結構和上面示例的一樣,說明正確初始化了,如果發現目錄或文件不全,說明Hexo沒正確初始化,請刪除整個blog目錄重新初始化。

Hexo 博客預覽

要想本地預覽Hexo博客,必須安裝本地服務器。Hexo 3.0 把服務器獨立成了個別模塊,必須先安裝 hexo-server 才能使用。

cd blog
npm install hexo-server --save

注意,不加 --save 會安裝失敗!

啟動Hexo本地服務

hexo server

如果發現不能啟動服務,請返回上面仔細檢查安全組內是否有4000端口,或者檢查端口是否打開了,或者檢查端口是否被其他程序占用!

啟動服務之后可以使用 http://localhost:4000 訪問你的Hexo靜態博客了。由于我們是在服務器空間上,所以把 localhost 換成 你空間的公網IP 就可以了。例如:http://192.168.0.1:4000

怎么樣?是不是很激動?有種<del>欣(da)喜(le)若(ji)狂(xue)</del>的感覺?別急,還沒完成呢

寫第一篇博文

博客已經成型,來寫第一篇自己的博文吧。使用下面的命令創建新的文章,這會生成一個Markdown文件,默認在 blog/sources/_posts 目錄下

hexo new "你好,Hexo"

使用Vim編輯它

vim /sources/_posts/你好,Hexo.md

然后使用下面的命令生成靜態文件

hexo generate

當然,是可以簡寫的

hexo g

啟動服務

hexo server

在瀏覽器輸入地址,就可以看到自己寫的文章啦~

配置Github

接下來,要將Hexo部署到Guthub倉庫上,讓別人也可以訪問你的博客,成為一個真正的網站。首先,需要進行配置。

  1. 注冊Github賬號

打開Github,申請一個賬號,有賬號的就可以跳過啦~

  1. 新建倉庫

注冊完成后登錄Github,點擊右上角的"+",d點擊"New repository"

進去后,填寫格式如下,把 yourusername 替換成的你用戶名。

注意:格式一定是要是 yourusername.github.io 不然后面的步驟會報錯!!!

  1. 告訴Git你是誰

要想部署到Github,Git必須先知道你是誰。

git config --global user.name"你的Github用戶名" 
git config --global user.email"你注冊Github時填的郵箱"
  1. 設置部署路徑

進入blog目錄,編輯配置文件_config.yml

cd blog
vim _config.yml

拉到最后,找到 deploy: ,修改如下,把 youruesername 替換成你的Githu用戶名

deploy: 
    type: git
    repo: https://github.com/yourusername/yourusername.github.io.git
    branch: master

注意:配置文件中的內容,":"后面都有個空格,不能省略,不然會報錯!!!

部署到Github

開始正式將Hexo部署到Github,完成這一步,一個真正的博客網站就搭建好了。

清除緩存文件和已生成的靜態文件

hexo clean

生成靜態文件

hexo generate

部署到Github

hexo deploy

合并簡寫

hexo d -g

或者

hexo g -d

這兩個命令都是可以的。然后會提示你輸入你的Github賬號和密碼,輸入后沒有任何報錯,就證明部署好了。接下來在瀏覽器輸入Github給你供的永久連接http://yourusername.github.io就能進入你的博客啦~~這個連接除非Github服務器出問題了,不然是永久有效的。

不容易啊!快要淚流滿面的對不對?我當初建好的時候可是大叫了出來,旁邊的人看我眼神都不對了(瑪德,zz!)

域名綁定

雖然可以通過上面的永久鏈接訪問你的博客,但是這一點都不個性化,也很繁瑣,讓你的博客有個自己獨立的域名,是十分必要的。

域名解析

進入你購買的域名的域名管理,選擇解析

然后點擊"添加記錄",會有提示

這里要說下,這里記錄類型有人填"A",也有人填"CNAME"。A類型就是填你的永久鏈接指向的IP地址,CANME類型就是直接填你的永久鏈接。但是,Github分配給你的IP地址有可能會改變,但是鏈接是不會變!個人建議還是填CNAME類型。這里就把兩種都敘述下。

  1. A 類型

使用 ping 命令獲得Github分配給你的ip地址

ping yourusername.github.io

例如:

我這里獲得的ip就是 151.101.77.147

添加兩條記錄,一條主機類型為"@",一條主機類型為"www"

  1. CNAME 類型

直接添加兩條記錄,同樣也是一條主機類型為"@",一條主機類型為"www"

好了,這樣記錄就添加完成。

然后修改DNS服務器,將DNS1,DNS2分別修改為

f1g1ns1.dnspod.net
f1g1ns2.dnspod.net

域名解析就完成了,解析的域名會在10分鐘甚至更長的時間內生效,請稍安勿躁。在等待的時候可先進行下面的操作。

添加CANME

如果,你的域名解析完成,這時候你在瀏覽器輸入你的域名想看看自己的博客,然而你會發現

并不能進入自己的博客。這時候還需要進行一步操作。

blog/source目錄下,新建一個文件CNAME文件,注意:文件名大寫,沒有后綴!

cd blog/source/
vim CNAME

內容就是你的域名,注意:不用加 www

例如,我的域名

newkami.cn

然后更新到Gitub

hexo clean
hexo g -d

如果你的域名解析正常,就可以看的你的博客啦~如果顯示無法訪問此網站,則是你的域名還沒解析完成,請耐心等待,如果顯示的是Github 404界面,則是你的CNAME或其他的問題,請仔細檢查上面的步驟!

博客性能優化

作為一個強迫癥患者,看著自家的網站用著http協議被瀏覽器標識為"不安全",簡直不能再不爽了。想著我也去搞了個SSL證書,讓自己的博客支持HTTPS協議。突然發現tx竟然能免費申請SSL證書!大喜!

經過4-5天漫長的等待,證書終于審核好了

然后我就急忙著去配置了,結果提示

誒?咋就這么麻煩呢?!要接入那咱就接入吧,心想著,結果,來了這么一出

哇,tx你這是在玩我吧

奈何Github倉庫并不能備案,這條路也就徹底斷了。在我快把百度和谷歌查爛的時候,發現了Cloudflare。

Cloudflare以向客戶提供網站安全管理、性能優化及相關的技術支持為主要業務。通過基于反向代理的內容傳遞網絡(ContentDeliveryNetwork,CDN)及分布式域名解析服務(DistributedDomainNameServer),Cloudflare可以幫助受保護站點抵御包括拒絕服務攻擊(DenialofService)在內的大多數網絡攻擊,確保該網站長期在線,同時提升網站的性能、訪問速度以改善訪客體驗。

以上摘自百度百科。

于是,我就著手把域名接入了Cloudflare。

  1. 注冊Cloudflare

進入Cloudflare,注冊一個賬號

  1. 解析域名

注冊完成后,填寫你的域名,讓Cloudflare去解析

  1. 跟改DNS服務器

然后,Cloudflare會要求你修改DNS,讓你的網站的請求流至Cloudflare。進入你的域名管理,把DNS服務器修改成Cloudflare提供的DNS,當看到

你的域名就成功接入Cloudflare了。

  1. 開啟https
    在上面的功能區里,選擇"加密"

將"總是使用HTTPS"設為開啟

至此,你的網站就成功開啟了https了,進入你的網站瀏覽器是這樣顯示的

怎么樣?看見有個小綠鎖是不是有種安心的感覺呢?

寫在后面

從開始寫到現在,過了好幾天了,期間因為其他的事,寫寫停停,總算寫完了。如果這篇文章哪怕有幫到你一點點,也算有意義了。

第一次寫教程,如有錯誤,請斧正!

參考資料

通過包管理器安裝Node.js
入門 - 安裝Git
Hexo文檔
博客從WordPress遷移到Hexo

歡迎轉載,轉載請注明出處:https://newkami.cn/2017/09/13/re-build-blog/

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容