本文首發於我的個人博客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.進入阿里雲管理控制檯,選擇管理實例
2.點擊本實例安全組,選擇配置規則
3.點擊右上角的添加安全組規則
4.依次將80端口和4000端口添加進去
如下圖爲添加80端口的示意圖:
安裝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 -v
和npm -v
,若顯示版本號,即安裝成功,如圖:
安裝並初步瞭解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
,即可看到第一次運行的狀況:
結束訪問按Ctrl+C
安裝並配置Nginx
安裝Nginx主要是想讓網站能隨時隨地訪問,不像上文中hexo提供的server,只能手動輸入命令後才能訪問到網站。
安裝 Nginx
在 CentOS 上,可直接使用 yum 來安裝 Nginx
yum install nginx -y
啓動Nginx
安裝完成後,使用以下命令啓動 Nginx:
systemctl start nginx
此時,用瀏覽器訪問 http://<你的IP地址>
便可以看到 Nginx 的測試頁面,即表示Nginx啓動成功!
繼續輸入以下命令使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 clean
和hexo deploy
(可簡寫爲hexo d
):
-clean
:清除緩存文件 (db.json
) 和已生成的靜態文件 (public文件夾
)。在某些情況(尤其是更換主題後),如果發現您對站點的更改無論如何也不生效,您可能需要運行該命令。
-deploy
:用於部署生成的靜態文件(public文件夾
),本文中,因爲配置了nginx服務器的訪問地址直接指向了public文件夾
,所以用不到此命令。