Re:從零開始的博客搭建

看到同窗有我的博客,內心癢癢的,想着也搞一個去,可是網上的博客都是在別人服務器上,感受太被動,我不喜歡。就去百度了下建站的過程,好像...並不難的樣子因而,開搞!html

期間踩了無數坑,百度和谷歌了無數次,軟件裝了又卸,卸了又裝,連服務器系統都重裝3次算是對的起標題的 "RE" 了。寫這篇文章是打算記錄下我搭建的過程,也算是個備忘錄吧,我的的記性實在是很差,不知道何時就忘了node

搭建的事前準備

  1. 一個獨立域名
  2. 一臺linux計算機,無論是本身的仍是別人的(服務器空間)

購買域名

購買域名的目的是人別人更好的記住你的博客,雖然Hexo靜態博客不綁定本身的域名也能夠經過Github分配給你的永久鏈接訪問,我的建議仍是買一個獨立域名,說不定別人就被你與(diao)衆(zha)不(tian)同的域名吸引了呢~linux

域名首選以.com爲後綴的,國際通用,簡單好用,如何購買請自行百度或谷歌「域名購買」或「域名註冊」,網上有很是多很是詳細的教程,這裏就不敘述了。git

購買服務器空間

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

因此,不想增長開銷的能夠跳過這步,使用本身的電腦搭建,可是須要用到Node.js,因此shell

不要使用Windows!!!npm

不要使用Windows!!!json

不要使用Windows!!!vim

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

迴歸正題,服務器空間有通常有如下幾種

  • 虛擬主機
  • 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

怎麼樣?是否是很激動?有種欣(da)喜(le)若(ji)狂(xue)的感受?別急,還沒完成呢

寫第一篇博文

博客已經成型,來寫第一篇本身的博文吧。使用下面的命令建立新的文章,這會生成一個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/

相關文章
相關標籤/搜索