阿里雲CentOS下Hexo+Nginx建站過程

本文首發於我的個人博客QIMING.INFO,轉載請帶上鍊接及署名。

講Hexo建站的有很多,但幾乎都是用Hexo和Github||coding.net上搭建的,再加上其中有好多是在Windows版本下的,所以本文可能是國內首個講在CentOS下使用hexo和nginx服務器搭建網站的教程了,我會寫的很詳細,如果有哪裏不對或沒講明白的歡迎評論!

看完本篇你將學到:
- 阿里雲控制檯的部分操作
- CentOS下Git的安裝方法
- CentOS下Node.js的安裝方法
- CentOS下Nginx的安裝及配置方法
- Linux系統的一些指令操作
- HEXO博客的安裝及使用方法
- 一些建站知識

前幾天阿里雲做活動,一年雲服務器99塊錢,順便看了眼域名,有個還不錯的域名(就是正在使用的這個:QIMING.INFO)也不貴,首年11元,正好最近想搞個博客,於是沒有過多猶豫就果斷入手了。

我買的是CentOS 7.3版本的,是一個純淨的系統,所以本文將介紹CentOS從零開始用Hexo和Nginx建站的過程。

準備工作

阿里雲控制檯中開啓相關端口

新購買的阿里雲系統中默認是沒有開啓80端口的,而這是HTTP協議的端口號,不開啓別人是無法訪問你的網站的。下文中還會使用到4000端口,所以首先在阿里雲控制檯中開啓這兩個端口,具體步驟如下:

1.進入阿里雲管理控制檯,選擇管理實例
Markdown

2.點擊本實例安全組,選擇配置規則
Markdown

3.點擊右上角的添加安全組規則
Markdown

4.依次將80端口和4000端口添加進去

如下圖爲添加80端口的示意圖:
Markdown

安裝git

直接使用yum即可,即在命令行中輸入:

yum –y install git

完成後輸入git version,若顯示git版本信息即安裝成功。

安裝Node.js

Node.js 是運行在服務端的 JavaScript, 是基於 Chrome JavaScript V8 引擎建立的平臺。

Hexo基於Node.js,所以安裝Node.js是必須的,具體步驟如下:

下載安裝包

我下載的是v6.10.1版本的,當然你也可以在官網上找其他版本的下載鏈接

wget https://nodejs.org/dist/v6.10.1/node-v6.10.1-linux-x64.tar.xz

待下載完成後,進行下一步

解壓縮改名放到/usr/local

tar xvJf node-v6.10.1-linux-x64.tar.xz

將解壓的 Node.js 目錄移動到 /usr/local 目錄下

mv node-v6.10.1-linux-x64 /usr/local/node-v6

軟鏈接到 /bin 目錄

ln -s /usr/local/node-v6/bin/node /bin/node
ln -s /usr/local/node-v6/bin/npm /bin/npm

配置環境變量

將 /usr/local/node-v6/bin 目錄添加到 $PATH 環境變量中可以方便地使用通過 npm 全局安裝的第三方工具

echo 'export PATH=/usr/local/node-v6/bin:$PATH' >> /etc/profile

使環境變量生效

source /etc/profile

測試是否成功

輸入node -vnpm -v,若顯示版本號,即安裝成功,如圖:
Markdown

安裝並初步瞭解Hexo

安裝Hexo

執行以下命令即可安裝Hexo:

npm install -g hexo-cli

注:目前npm官方源在國內訪問並不穩定,如果你無法直接安裝,請更換國內npm源

npm config set registry https://registry.npm.taobao.org

完成後輸入hexo version,若顯示一系列版本信息則安裝成功。

初步使用

安裝 Hexo 完成後,請執行下列命令,Hexo 將會在指定文件夾中新建所需要的文件。

$ hexo init <folder>
$ cd <folder>

新建完成後,指定文件夾的目錄如下:

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

詳細說明如下:

1、_config.yml是YAML格式文件,也是Hexo的站點配置文件(敲黑板!重點重點!)
2、package.json配置hexo運行需要的node.js包,不用手動更改
3、scaffolds是模板文件夾。這個“模板”就是指新建的markdown文件的模板,每新建一個markdown文件(由於Hexo使用markdown語法,在渲染生成靜態HTML頁面之前,源文件都是markdown文件),就會包含對應模板的內容。
該文件夾內有三個模板:
- draft.md,草稿的模板
- page.md,頁面的模板
- post.md,文章的模板

4、source是資源文件夾,資源文件夾是存放用戶資源的地方。除posts 文件夾之外,開頭命名爲 (下劃線)的文件 / 文件夾和隱藏的文件將會被忽略。Markdown 和 HTML 文件會被解析並放到 public 文件夾,而其他文件會被拷貝過去。
5、themes是主題文件夾。Hexo 會根據主題來生成靜態頁面。

第一次運行

輸入hexo generate命令來生成靜態文件。

注1:生成的靜態文件存放在public文件夾中
注2:此命令可簡寫爲hexo g

然後輸入hexo server(可簡寫爲hexo s)來啓動服務器。

默認情況下,端口號爲4000,上文已經開啓過此端口號,所以服務器啓動成功後,在瀏覽器中輸入http://<你的IP地址>:4000,即可看到第一次運行的狀況:
Markdown
結束訪問按Ctrl+C

安裝並配置Nginx

安裝Nginx主要是想讓網站能隨時隨地訪問,不像上文中hexo提供的server,只能手動輸入命令後才能訪問到網站。

安裝 Nginx

在 CentOS 上,可直接使用 yum 來安裝 Nginx

yum install nginx -y

啓動Nginx

安裝完成後,使用以下命令啓動 Nginx:

systemctl start nginx

此時,用瀏覽器訪問 http://<你的IP地址>便可以看到 Nginx 的測試頁面,即表示Nginx啓動成功!
Markdown
繼續輸入以下命令使Nginx開機自動啓動:

systemctl enable nginx

配置靜態服務器訪問路徑

Nginx 需要配置靜態資源的路徑信息才能通過 url 正確訪問到服務器上的靜態資源。
即是要將HEXO生成的靜態資源的路徑放置到Nginx的訪問路徑

打開 Nginx 的默認配置文件 /etc/nginx/nginx.conf ,將默認的 root /usr/share/nginx/html 修改爲: root /…/<folder>/public (此處可能在此配置文件的42行,<folder>即爲hexo初始化的文件夾)

修改完成後保存,輸入以下命令重啓Nginx:

nginx -s reload

此時再次訪問你的IP地址,若顯示上文的hexo初次運行的樣子,則說明配置成功。

注:可能會報403錯誤,原因是nginx沒有權限訪問public文件夾,修改方法有兩種:
1.修改public文件夾的權限,修改爲777(即任何人可讀可寫可執行),不推薦
2.修改nginx.conf中的user(可能在第5行),改爲可以訪問public文件夾的用戶,如root。

配置Hexo

站點配置

配置hexo時,需要修改上文提到的根目錄下的_config.yml文件,我將自己的部分配置貼上來,主要修改的就是這部分:

# Site
title: QIMING.INFO #網站標題
subtitle:          #網站副標題
description:       #網站描述,可以是你喜歡的一句話
keywords:          #網站關鍵詞  
author: Qiming     #你的名字
language: zh-CN    #網站使用的語言
timezone:          #網站時區,默認使用服務器的時區

其餘的文件內容可以使用默認值,萌新可不必修改,具體參見官方文檔

注:修改yml文件時應注意“:”後面應加空格。

切換主題

你可以在主題列表中尋找你喜歡的主題,然後將其下載(或使用git clone)到themes文件夾下,然後修改站點配置文件_config.yml裏的theme設定即可。例如,我使用的是next主題:

theme: next

主題的配置

每個主題也會有一個_config.yml文件,在此主題的根目錄下,用於配置主題。

我使用的NexT主題有着豐富詳細的使用說明,其內置了很多實用功能如第三方評論、文章閱讀次數統計、動態背景、站內搜索等,具體設置可參考其官方使用文檔,如有不懂可評論告知。

開始使用

創建文章

你可以執行下列命令來創建一篇新文章。

$ hexo new post <title>

注:post可以不寫,因爲其爲layout的默認值,其餘layout還有page(頁面)和draft(草稿)。

之後,你的source/_post文件夾下會產生一個<title>.md的文件。

編輯文章

Front-matter

打開此<title>.md後你會發現在最上方有以---分隔的區域,這部分即稱爲Front-matter,用於註定個別文件的變量,例如本篇文章的Front-matter:

title: 阿里雲CentOS下Hexo+Nginx建站過程 #標題
tags:                      #標籤
- HEXO
- 建站
- nginx
- nodejs
- 阿里雲
categories:                #分類(注:不支持同級並列分類)
- 教程
- Hexo
date: 2018-04-20 15:52:08  #文件建立時間

寫作

Hexo僅支持Markdown語法的寫作,在此服務器中用vim編寫的話看不到預覽效果,所以我是在Windows上用馬克飛象寫好之後,粘貼到<title>.md裏的。

運行

寫完文章後,在你的博客根目錄下輸入:

hexo g

hexo就會將寫好的文章生成靜態網頁並存放在public文件夾下了。

如上,如果nginx配置正常的話,你現在已經可以通過訪問http://<你的IP地址>來看到你的博客了!

注:hexo裏還有兩個常用命令沒有講到,分別是hexo cleanhexo deploy(可簡寫爲hexo d):
- clean:清除緩存文件 (db.json) 和已生成的靜態文件 (public文件夾)。在某些情況(尤其是更換主題後),如果發現您對站點的更改無論如何也不生效,您可能需要運行該命令。
- deploy:用於部署生成的靜態文件(public文件夾),本文中,因爲配置了nginx服務器的訪問地址直接指向了public文件夾,所以用不到此命令。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章