樹莓派搭建 Hexo 博客(一)

Hexo 一個開源的博客框架,本文記錄了一下在樹莓派上搭建 Hexo 博客的過程。
html

什麼是 Hexo?

Hexo 是一個快速、簡潔且高效的博客框架。Hexo 使用 Markdown(或其餘渲染引擎)解析文章,在幾秒內,便可利用靚麗的主題生成靜態網頁。
在發佈時,Hexo 能夠部署在本身的 Web 服務器上面,也能夠部署 GitHub 上面,在這裏,咱們要把她部署到咱們的樹莓派上!
Hexo官網:https://hexo.ionode

1、安裝 node.js 的 arm 環境

Node.js 官網 已經提供了編譯好的鏡像供各類架構使用,使用 uname -a 查看 pi 的 CPU 信息,以下:linux

Linux raspberrypi 4.1.19+ #858 Tue Mar 15 15:52:03 GMT 2016 armv6l GNU/Linux

能夠得知咱們手中的 pi 是基於 arm6l 架構的,所以在這裏對應下載以下包:nginx

mkdir ~/node_js
cd node_js
sudo wget http://nodejs.org/dist/latest-v5.x/node-v5.11.1-linux-armv6l.tar.gz
sudo tar zxvf node-v5.11.1-linux-armv6l.tar.gz
sudo mv node-v5.11.1-linux-armv6l/ node
sudo mv node /usr/local/
sudo chown -R pi.pi /usr/local/node

安裝好後各個文件夾大小以下:shell

pi@raspberrypi:/usr/local/node $ du -h --max-depth=1
18M     ./lib
22M     ./bin
2.9M    ./include
44K     ./share
43M     .

設置環境變量:npm

sudo nano /etc/profile

加入下面一行,Ctrl+O 保存文件 ,Ctrl+X 退出編輯器 :json

PATH=$PATH:/usr/local/node/bin

使用 source /etc/profile 使環境變量生效,隨後測試一下:瀏覽器

pi@raspberrypi:~$ node -v
v5.11.1
pi@raspberrypi:~$ npm -v
3.8.6

2、安裝 Hexo

只須要使用 npm 便可完成 Hexo 的安裝(稍做等待)bash

# -g 表明全域安裝 是全域安裝, 跟你當前所在路徑無關
npm install -g hexo-cli

有兩個警告暫時沒法解決:服務器

npm WARN optional Skipping failed optional dependency /hexo-cli/chokidar/fsevents:
npm WARN notsup Not compatible with your operating system or architecture: fsevents@1.0.12

安裝好後 /usr/local/node/lib/node_modules 目錄下多了一個 hexo-cli 文件夾,隨後測試一下:

pi@raspberrypi:~/blog $ hexo -v
hexo: 3.2.0
hexo-cli: 1.0.1
os: Linux 4.1.19+ linux arm
http_parser: 2.7.0
node: 5.11.1
v8: 4.6.85.31
uv: 1.8.0
zlib: 1.2.8
ares: 1.10.1-DEV
icu: 56.1
modules: 47
openssl: 1.0.2h

3、建站

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

$ mkdir blog
$ hexo init <folder>
$ cd <folder>
$ npm install

執行 hexo init 後提示,警告暫時沒有解決:

npm WARN optional Skipping failed optional dependency /chokidar/fsevents:
npm WARN notsup Not compatible with your operating system or architecture: fsevents@1.0.12
INFO  Start blogging with Hexo!

新建完成後,blog 文件夾的目錄以下:

pi@raspberrypi:~ $ ls ./blog/ -l
total 36
-rw-r--r--   1 pi pi  1483 May  8 23:37 _config.yml
-rw-r--r--   1 pi pi   174 May  9 10:30 db.json
drwxr-xr-x 286 pi pi 12288 May  8 23:49 node_modules
-rw-r--r--   1 pi pi   447 May  9 00:07 package.json
drwxr-xr-x   2 pi pi  4096 May  8 23:37 scaffolds
drwxr-xr-x   3 pi pi  4096 May  8 23:37 source
drwxr-xr-x   3 pi pi  4096 May  8 23:37 themes

查看一下文件夾大小:

pi@raspberrypi:~/blog $ du -h --max-depth=1
12K     ./source
1.1M    ./themes
16K     ./scaffolds
54M     ./node_modules
55M     .

各個文件和文件夾做用請查看:https://hexo.io/zh-cn/docs/setup.html

4、啓動服務器,進行測試

在 blog 目錄下,輸入:

hexo server

默認狀況下,用瀏覽器訪問網址:http://localhost:4000/
若是能夠看到hexo主頁,那麼就成功了!

5、使用 Hexo 直接在樹莓派上生成靜態頁面

輸入下面命令:

hexo generate

能夠在 blog/public 目錄下生成靜態頁面,樹莓派下生成仍是比較吃力的,僅一篇文章就用了 20+ 秒,後續決定採用:

  • 本地編寫 markdown 文件,經過 node.js 和 hexo 生成靜態文件,上傳到樹莓派 nginx 服務器的方式來更新咱們的博客!
相關文章
相關標籤/搜索