Hexo 是一個快速、簡潔且高效的博客框架。Hexo 使用 Markdown(或其他渲染引擎)解析文章,在幾秒內,即可利用靚麗的主題生成靜態網頁。
Hexo 是使用的比較多的博客框架了,我也嘗試自己搭一下,做一些基礎功能的測試。之所以沒有使用 GitHub 而選擇了碼雲,一是我有自己的 VPS 不需要使用 GitHub Pages ,所以本文也沒有關於如何使用 GitHub Pages 的教程;二是 GitHub 上私有倉庫是收費的,碼雲上面能創建免費的私有倉庫。也有人選擇使用 Docker 來創建博客環境,做鏡像備份,這里沒有使用此方案,各有所好吧!
環境
主服務器系統版本與內核版本:
[root@dbn-japan ~]# cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)
[root@dbn-japan ~]# uname -r
3.10.0-862.3.2.el7.x86_64
測試服務器系統版本與內核版本:
[root@host ~]# cat /etc/redhat-release
CentOS Linux release 7.3.1611 (Core)
[root@host ~]# uname -r
4.10.4-1.el7.elrepo.x86_64
安裝
wget
yum install -y wget
NodeJS
# 下載nodejs最新的bin包 wget https://nodejs.org/dist/v10.13.0/node-v10.13.0-linux-x64.tar.xz # 解壓 xz -d node-v10.13.0-linux-x64.tar.xz tar -xf node-v10.13.0-linux-x64.tar # 移動目錄 mv node-v10.13.0-linux-x64 /usr/local/nodejs # 部署文件 ln -s /usr/local/nodejs/bin/node /usr/bin/node ln -s /usr/local/nodejs/bin/npm /usr/bin/npm
可以去官方網站下載,我這里使用的類型為:Linux Binaries (x64)
測試
[root@dbn-japan packages]# node -v
v10.13.0
[root@dbn-japan packages]# npm -v
6.4.1
如果輸出了版本號,說明安裝成功。
Git
yum install -y git
初始化設置:
git config --global user.email "dbnuo@foxmail.com"
git config --global user.name "BNDong"
Hexo
npm install -g hexo-cli
安裝后嘗試執行命令: hexo
如果出現下面的輸出,按我下面的方法解決,沒有則跳過。
[root@dbn-japan packages]# hexo
-bash: hexo: command not found
編輯環境變量文件: vim /etc/profile ,在文件末尾增加下面設置:
export PATH=$PATH:/usr/local/nodejs/lib/node_modules/hexo-cli/bin
刷新環境變量: source /etc/profile ,這時再運行命令 hexo 就會有正確的輸出了。
配置
創建項目與分支
創建新的分支:sources
- master:存放 Hexo 編譯生成的靜態資源。
- sources:存放源文件,用來備份博客。
設置 SSH Key
運行下面的命令創建 SSH Key,郵箱部分改成你創建賬戶時候的郵箱:
[root@dbn-japan blog.dbnuo.org]# ssh-keygen -t rsa -C "dbnuo@foxmail.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): # 目錄
Enter passphrase (empty for no passphrase): # 輸入密碼,可回車跳過
Enter same passphrase again: # 再次輸入密碼
查看公開密鑰:
cat ~/.ssh/id_rsa.pub
將公開密鑰添加至碼雲。
拉取項目
跳轉至網站根目錄,克隆項目至本地:
git clone https://gitee.com/dbnuo/bnd-hexo.git
跳轉至拉取的項目目錄:
# 創建 hexo 目錄 mkdir hexo # 進入 hexo 目錄 cd hexo/ # 初始化 hexo 目錄 hexo init npm install # 安裝插件 npm install hexo-generator-index --save npm install hexo-generator-archive --save npm install hexo-generator-category --save npm install hexo-generator-tag --save npm install hexo-server --save npm install hexo-deployer-git --save npm install hexo-deployer-heroku --save npm install hexo-deployer-rsync --save npm install hexo-deployer-openshift --save npm install hexo-renderer-marked --save npm install hexo-renderer-stylus --save npm install hexo-generator-feed --save npm install hexo-generator-sitemap --save
建站
先看文件夾里都有什么:
[root@dbn-japan hexo]# ls -a
. .. _config.yml .gitignore node_modules package.json package-lock.json scaffolds source themes
- _config.yml:站點的配置文件,需要備份;
- themes:主題文件夾,需要備份;
- source:博客文章的 .md 文件,需要備份;
- scaffolds:文章的模板,需要備份;
- package.json:安裝包的名稱,需要備份;
- .gitignore:限定在 push 時哪些文件可以忽略,需要備份;
- .git:主題和站點都有,標志這是一個 git 項目,不需要備份;
- node_modules:是安裝包的目錄,在執行 npm install 的時候會重新生成,不需要備份;
- public:是 hexo g 生成的靜態網頁,不需要備份;
- .deploy_git:同上,hexo g 也會生成,不需要備份;
- db.json:文件,不需要備份。
配置 _config.yml
基礎配置可以參考官方文檔的配置說明。這里需要在末尾添加 Git 的配置:
...
deploy:
type: git
repo: https://gitee.com/dbnuo/bnd-hexo.git
branch: master
message: 'web updata: {{now("YYYY-MM-DD HH/mm/ss")}}'
生成頁面並提交
運行命令: hexo cl && hexo g -d 輸入用戶名和密碼后,頁面代碼就會提交至碼雲項目中。
將網站目錄指定至 hexo 的 public 文件夾中,訪問網站:
備份
跳轉至項目目錄 bnd-hexo:
git checkout -b sources # 創建切換分支 git push origin sources # 提交代碼至分支
提交至碼雲項目分支:
至此搭建完畢,代碼也備份到項目中了。為了測試備份恢復,我新建了個文章 test 並提交進行測試。
恢復
切換至測試服務器,基礎的安裝和設置可以參考上面的流程。
跳轉至網站的根目錄:
# 拉取項目至本地 git clone https://gitee.com/dbnuo/bnd-hexo.git # 跳轉至目錄 cd bnd-hexo # 創建分支並拉取 git checkout -b sources origin/sources # 跳轉至源文件目錄 cd hexo # 初始安裝 npm install npm install hexo-generator-index --save npm install hexo-generator-archive --save npm install hexo-generator-category --save npm install hexo-generator-tag --save npm install hexo-server --save npm install hexo-deployer-git --save npm install hexo-deployer-heroku --save npm install hexo-deployer-rsync --save npm install hexo-deployer-openshift --save npm install hexo-renderer-marked --save npm install hexo-renderer-stylus --save npm install hexo-generator-feed --save npm install hexo-generator-sitemap --save
執行完畢,hexo 就恢復了,可以正常操作了。
多終端
至此兩台服務器都對一個項目庫進行操作,可以說是多終端了,我在測試服務器新建了個文章: hexo new post "test2"
創建成功后提交上傳。
切換回主服務器:
# 跳轉至項目目錄 cd bnd-hexo # 拉取項目 git pull origin sources # 跳轉至源文件目錄 cd hexo/ # 重新編譯 hexo cl && hexo g -d
再訪問網站:
看到這里出現了文章 test2 ,至此多終端編輯操作成功。
結語
這里簡單介紹了一些必要的流程操作,建議大家將一些基本操作封裝成腳本來操作,至於主題和優化大家可以參考一些網上的資源教程,感謝閱讀,拜謝!