如何在Ubuntu(Linux) 系統上建立自己的hexo博客

網上教程已經很多了。爲什麼還要寫這樣一篇博客呢?
網上教程過於分散,自己在搭建過程中遇到了一些細節問題,從頭到尾解決下來花了不少時間,本文重點是涉及配置hexo安裝環境和git環境,希望做一個總結,方便日後查看,也許能夠幫到更多人呢~

說明:Hexo是靜態博客生成框架,這個博客要託管在開源代碼託管網站Github的git pages上,git是Github的分佈式源代碼管理工具,這裏用來推送hexo博客文件到github,我們只需要簡單的瞭解node js是一個Java script運行環境,hexo的運行需要這個環境的支撐即可,npmnodejs的模塊管理器,可以用來方便地安裝所需hexo模塊。)

1. 本地設置:

1.1 配置Hexo安裝環境 (git,nodejsnpm)

(說明:Hexo是靜態博客生成框架,這個博客要託管在開源代碼託管網站Github的git pages上,git是Github的分佈式源代碼管理工具,這裏用來推送hexo博客文件到github,我們只需要簡單的瞭解node js是一個Java script運行環境,hexo的運行需要這個環境的支撐即可,npmnodejs的模塊管理器,可以用來方便地安裝所需hexo模塊。)

1.1.1 安裝nodejsnpm

#如果是Debian系的(如Ubuntu)
sudo apt-get install nodejs npm
#如果是Archlinux
sudo pacman -S nodejs npm

1.1.2 配置環境變量

npm config set prefix ~/.npm
export PATH="$PATH:$HOME/.npm/bin"
echo export PATH="$PATH:$HOME/.npm/bin" >> ~/.zshrc  # 持久化環境變量配置
echo export PATH="$PATH:$HOME/.npm/bin" >> ~/.bashrc

1.1.3 配置git

首先安裝好git,然後執行如下命令配置git環境:

git config --global user.name "arisskz6"
git config --global user.email arisstz6@gmail.com

1.2 安裝Hexo

npm install hexo-cli -g
npm install
npm install hexo-deployer-git

2. 遠程設置

2.1 配置Github pages

感謝知乎@CrazyMilk
github上創建博客倉庫,名稱形式是這樣:arisskz6.github.io

  1. 創建倉庫 arisskz6.github.io;
  2. 創建兩個分支:master 與 hexo;
  3. 設置hexo爲默認分支(因爲我們只需要手動管理這個分支上的Hexo網站文件);
  4. 使用git clone [email protected]:arisskz6/arisskz6.github.io.git拷貝倉庫;
  5. 在本地https://arisskz6.github.io文件夾下通過Git bash依次執行npm install hexo、hexo init、npm install 和 npm install hexo-deployer-git(此時當前分支應顯示爲hexo);
  6. 修改_config.yml中的deploy參數,分支應爲master;
  7. 依次執行git add .、git commit -m “…”、git push origin hexo提交網站相關的文件;
  8. 執行hexo g -d生成網站並部署到GitHub上。

直通車: 點我

2.2 本地與git pages連接

2.2.1 判斷本地ssh key是否已存在

ls -al ~/.ssh

顯示結果如下:

arisskz6 in ~/Documents λ ls -al ~/.ssh
總用量 20
drwx------ 2 arisskz6 users 4096 11月 24 20:29 .
drwx------ 29 arisskz6 users 4096 12月 13 16:11 ..
-rw------- 1 arisskz6 users 1679 11月 24 20:29 id_rsa
-rw-r--r-- 1 arisskz6 users 400 11月 24 20:29 id_rsa.pub
-rw-r--r-- 1 arisskz6 users 988 11月 24 21:25 known_hosts

上面結果中的4、5兩行就分別是ssh key的私鑰和公鑰,我這裏已經存在,如果沒有,就要生成ssh key了
使用如下命令生成ssh密鑰對:

ssh-keygen -t rsa -b 4096 -C "[email protected]"

會回答幾個問題,如果沒有特別需求,一路按回車鍵選擇默認選項即可。

2.2.2 將ssh key添加到ssh-agent中

eval "$(ssh-agent -s)" #啓動ssh-agent後臺程序
ssh-add ~/.ssh/id_rsa #添加ssh密鑰到ssh-agent

2.2.3 將本地ssh密鑰對中的公鑰添加到github

cat ~/.ssh/id_rsa.pub

將顯示出的ssh公鑰內容複製到剪貼板,在gituhb個人頁面中點擊頭像,然後點擊Settings,在Personal settings邊欄中點擊SSH and GPG keys,點擊New SSH key(或Add SSH key),設置自己喜歡的標題,把公鑰粘貼進下方空白區域即可

2.2.4 測試ssh連通性

ssh -T git@github.com

如果顯示如下就成功了:

arisskz6 in ~/Documents λ ssh -T [email protected]
Hi arisskz6! You've successfully authenticated, but GitHub does not provide shell access.

我們配置ssh key目的就是不用每次提交博客都輸入賬號密碼,前面的鋪墊打完了,下面就要在站點配置文件中進行相應的設置

2.3 修改Hexo站點和主題文件

2.3.1 創建配置文件的備份,方便以後出現問題恢復

cd ~/Documents/hexo
cp _config.yml _config.yml.bak

2.3.2 首先修改_config.yml中的deploy屬性

deploy:
  type: git
  repo: git@github.com:arisskz6/arisskz6.github.io.git
  branch: master

2.3.3 安裝next 主題

mkdir themes/next
curl -L https://api.github.com/repos/iissnan/hexo-theme-next/tarball | tar -zxv -C themes/next --strip-components=1

2.3.4 配置next主題

2.3.4.1 首先修改hexo根目錄下的站點配置文件_config.yml
  • 設置網站標題
title: arisskz6's Blog
subtitle: 不忘初心
  • 設置語言爲中文:
language: zh-Hans
  • 設置時區(重要!!!如果不設置會出現問題,以後我們會專門寫一篇博文來總結hexo配置中的那些坑)
timezone: Asia/Shanghai
  • 啓用next主題
themes: next
  • 添加網站url
url: https://arisskz6.github.io/
  • 添加disqus評論支持
disqus_shortname: arisstz6
  • 添加一個標籤頁,裏面包含網站中的所有標籤
    • 創建一個名爲tags頁面
    • 編輯標籤頁, 設置頁面類型爲tags
    • 添加 tags 到主題配置文件_config.yml
  hexo new page "tags"
title: All tags
  date: 2014-12-22 12:39:04
  type: "tags"
------
menu:
    home: /
    archives: /archives
    tags: /tags

站點配置文件中其他項可酌情自行設置,除非瞭解要修改項的含義,否則不要隨意改動

3. hexo常用命令

  • 新建文章:
hexo new "文章標題"
  • 更新hexo配置
hexo clean
  • 將寫好的makdown格式的博文生成爲html文件
hexo g
  • 本地預覽博客
hexo s
  • 本地調試博客
hexo s --debug
  • 推送博客到git pages
hexo d

更新博客時上面兩個命令可以合用:

hexo g -d

4. 換電腦或重裝系統後更新博客

  • 使用形如git clone [email protected]:arisskz6/arisskz6.github.io.git的git命令拷貝倉庫(默認分支爲hexo)
  • 在本地新拷貝的arisskz6.github.io目錄下執行如下命令在持久化保存用戶名和密碼(以後提交就不用每次都輸入用戶名和密碼了):
git config credential.helper store
  • 依次執行下列指令:
npm install hexo
npm install
npm install hexo-deployer-git # 記得,不需要hexo init這條指令

5. 配置獨立域名

兩位大神已經給出了詳細的教程,我不會說是我懶癌犯了,參考鏈接(感謝^^):
1.無人看的冷清博客:Hexo-Github-Pages-Cloudflare搭建自定義域名HTTPS博客
2.MARKSZのBlog:hexo持久化構建以及給自有域名github-page上HTTPS

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