Hexo部落格的安裝部署及多電腦同步
Hexo安裝教程很多,我這裡儘可能的講的細一些,把容易踩坑的地方以及後期多電腦同步所遇到的問題列出來,以便給自己及大家參考。本文主要講解安裝部署後原始檔同步問題,當然,你可以採用網盤方式進行同步,但是這種方式不夠程式設計師,也不能進行版本控制,如果你是一個多系統(windows、mac、linux)愛好者,那我建議你還是和我一樣,採用git的方式進行原始檔管理。使用github和Hexo,在幾秒內,即可利用靚麗的主題生成靜態網頁。
安裝
什麼是hexo
首先,你能找到這篇文章,證明你已經知道什麼是hexo了,官方對這塊講解非常詳細,我不做過多贅述,但是關於優缺點這塊,還是有幾個點要給大家說下。
優點: 基於node.js的高效部落格框架,能讓上百個頁面在幾秒內完成渲染 支援markdown撰寫部落格,極其輕量級,這很程式設計師 海量的主題,外掛支援 很裝逼,怪不得得到不少程式設計師的青睞 支援github pages,不用自己建伺服器 可離線撰寫文件,有網後上傳 缺點: 麻煩,部落格的原始檔需要儲存起來,不好同步(本文後面將解決這個問題) 學習成本高,沒接觸過markdown的同學很難上手 同上,沒接觸過開發的同學很難上手 寫部落格需要搭建環境,換電腦後浪費時間
優缺點我遇到的就這些,當然,因為是純前端展示,所以載入速度比Wordpress和Typecho等部落格速度快的多。而且完美支援markdown語言。但是缺點也很明顯,不能線上編輯,需要您本地撰寫後部署才行。就如同您寫C語言後,還需要編譯一樣,Hexo將Markdown檔案編譯成Html檔案在部署到伺服器端(可以是自己的伺服器,也可以是Github page的伺服器)。
如何安裝hexo
網上安裝hexo的教程很多很多,官方也提供了hexo的安裝中文教程,如我教程時間過長,請參考官方教程。
安裝之前,需要你電腦安裝好Node.js和Git,由於系統花樣繁多,本文將僅介紹Windows、Mac、Ubuntu(linux)安裝方法,其他系統請自行摸索或私信我微博。
Node.js及git的安裝
windows中Node.js及Git的安裝
Node.js
開啟Node.js的官網,點選8.9.4 LTS綠色按鈕(本文撰寫時的版本),下載好後一路下一步安裝即可。
Git
開啟Git官網,點選電腦顯示器中的Download 2.16.2 for Windows(本文撰寫時的版本)按鈕,下載好後一路下一步安裝即可。
Mac中Node.js及Git的安裝
Node.js
開啟Node.js的官網,點選8.9.4 LTS綠色按鈕(本文撰寫時的版本),下載好後一路下一步安裝即可。
Git
Mac預設自帶Git,若您系統版本過低,請開啟Git官網下載安裝。
Ubuntu中Node.js及Git的安裝
Node.js
命令視窗輸入以下命令
sudo apt-get update
sudo apt-get install -y python-software-properties software-properties-common
sudo add-apt-repository ppa:chris-lea/node.js
sudo apt-get update
sudo apt-get install nodejs
sudo apt install nodejs-legacy
sudo apt install npm
sudo npm install n -g
sudo n stable
sudo node -v
如遇到安裝錯誤或其他問題,請使用編譯安裝。
為保證nodejs版本及穩定性,下面安裝是下載nodejs進行編譯安裝,可能耗時較長,請耐心等待。如您上面執行
sudo node -v
已經正常顯示版本,則不用執行下面的程式碼。
sudo git clone https://github.com/nodejs/node.git
sudo chmod -R 755 node
cd node
sudo ./configure
sudo make
sudo make install
Git
Ubuntu安裝git,執行以下命令即可安裝
sudo apt-get install git
Hexo的安裝
hexo安裝命令非常簡單,只需要一步即可安裝完成,具體命令視窗輸入以下命令:
sudo npm install -g hexo-cli
但是值得注意的是,Windows必須去掉
sudo
命令即npm install -g hexo-cli
,windows如何開啟命令視窗請點選這裡學習。Ubuntu和Mac仍使用上述命令安裝即可。
部署
關於部署,官方文件也寫的非常詳細,如有任何疑問詳見這裡,本文僅作最基礎的部署介紹。
如何建站
安裝完Hexo等相關依賴後,請執行以下命令建立您的網站
sudo hexo init <folder>
cd <folder>
sudo npm install
同上,Windows須去掉
sudo
命令,Ubuntu和Mac仍使用上述命令安裝即可。其中<folder>
為你需要建立的網站的資料夾名稱,名稱無硬性要求,如我建立自己的網站,則可寫為sudo hexo init techeek
沒錯,這樣就完了,你的網站已經搭建完成。更多相關的命令解釋請點選這裡檢視。
如何寫文章
首先我們需要建立一個新的文章,預設Hexo已經為我們寫了一篇為Hello Word的文章,但是為了熟悉撰寫文章的過程,我們還是重頭撰寫一遍。
首先在您的命令視窗輸入以下命令
sudo hexo new <title>
同上,Windows須去掉
sudo
命令,Ubuntu和Mac仍使用上述命令安裝即可。其中<title>
為你需要建立的文章的名稱,名稱無硬性要求,如我建立自己的文章,則可寫為sudo hexo init hexo-tutorial
這時,找到你建立的網站目錄中建立markdown原始檔的地方,位置在你建立網站的名稱source_posts
下,雙擊編輯該檔案,開啟後markdown格式如下:
---
title: 這塊寫你文章的名稱
date: 這塊為建立文章的時間,可修改,格式為:年-月-日 時:分:秒
tags: [這塊寫你文章的標籤,使用“,”隔開(注意去掉引號須包含中括號)]
---
這塊寫你的正文
如本文格式
---
title: Hexo部落格的安裝部署及多電腦同步
date: 2018-02-26 13:47:02
tags: [hexo,git,同步]
---
Hexo安裝教程很多,我這裡儘可能的講的細一些,把容易踩坑的地方以及後期多電腦同步所遇到的問題列出來,以便給自己及大……
如何部署
本次部署我們分為兩類,第一種是部署到自己的伺服器,第二種是部署到Github Pages上面,個人是推薦部署到Github Pages上面。不管是部署在自己的伺服器還是部署在Github Pages上,都需要先生成網頁檔案才行,這塊輸入如下命令:
sudo hexo generate
來生成靜態網頁檔案,同上,Windows不需要輸入sudo
命令,這條命令可以簡寫為sudo hexo g
後面也可加-d或-w
選項,其中-d
選項為檔案生成後立即部署網站,-w
選項為監視檔案變動。
如何部署在自己的伺服器上
當靜態檔案生成好之後我們需要使用如下命令部署網站,命令如下
sudo hexo deploy
sudo hexo server
啟動伺服器。預設情況下,訪問網址為: http://localhost:4000/
如何部署在Github Pages上
建立Github倉庫
首先你需要建立並登入Github賬戶,點選這裡註冊,然後點選GitHub中的New repository建立新倉庫。倉庫名稱必須命名為你的GitHub使用者名稱.github.io
,其中“你的GitHub使用者名稱”使用你的github賬戶代替,比如我的倉庫名稱為techeek.github.io
,這樣,你就建立好你的Github Pages倉庫了。
生成ssh金鑰檔案
接下需要建立ssh金鑰檔案,為什麼要建立呢,因為Hexo部署在github上是通過金鑰配對上傳的,所以我們需要建立公鑰和私鑰,什麼是公鑰和私鑰請點這裡。我們首先依然開啟命令提示符,Windows請搜尋開啟Git Bash。然後輸入如下命令配置git
git config --global user.name "你的GitHub使用者名稱"
git config --global user.email "你的GitHub註冊郵箱"
配置完成後,輸入如下命令生成ssh金鑰檔案
ssh-keygen -t rsa -C "你的GitHub註冊郵箱"
接下來按三下回車就行,不建立密碼,然後我們使用
cd ~/.ssh
命令開啟ssh生成的金鑰檔案,Windows金鑰檔案在C:/Users/你的使用者名稱/.ssh
目錄下。接下來開啟GitHub_Settings_keys 頁面,新建new SSH Key。Title為標題,任意填寫。將剛剛複製的id_rsa.pub內容貼上到key,最後點選Add SSH key。
部署網站
部署前需要修改Hexo的配置檔案,這裡先放出官方的配置方法,大家可以參考。我這裡只講如何配置git
修改_config.yml內容如下
# Deployment
## Docs: https://hexo.io/docs/deployment.html
deploy:
type: git
repo: [email protected]:你的GitHub使用者名稱/你的GitHub使用者名稱.github.io.git
branch: master
很多教程都將repo:
寫為https://github.com/你的GitHub使用者名稱/你的GitHub使用者名稱.github.io.git
但是我個人不推薦這樣寫,因為有時候會因為蜜汁原因無法上傳,別問問啥,我還沒搞懂。所以我建議按照我上面的格式寫。
這是執行如下命令,就可部署你的網站了
sudo hexo deploy
部署完成後,開啟https://你的GitHub使用者名稱.github.io.git看看是不是能正常訪問啦?
後話
以後,你寫完部落格後,只需要執行以下命令即可部署在你自己的伺服器上或者Github Pages上面。
sudo hexo generate
sudo hexo deploy
sudo hexo server #Github Pages不需要這行命令
可精簡為
sudo hexo g -d
sudo hexo server #Github Pages不需要這行命令
也就是說,如果你是使用Github Pages服務,則只用輸入sudo hexo g -d
命令即可部署你的伺服器。
同時,你也可以將自己的域名指向你的Github Pages伺服器,但是須在source
目錄下建立CNAME檔案,檔案內容為你的域名地址,如我的內容則為www.techeek.cn
,但是比較坑的是,使用自己的域名無法支援HTTPS,我這裡採用的是騰訊雲的CDN服務,在騰訊雲申請免費的CA級證書,部署上去直接就支援了HTTPS,還加速了網站,一舉兩得。
同步
部署完成後,接下來該解決同步問題了,當然你可以上傳到你自己的網盤中,比如微雲,百度網盤等地方,但是這樣不夠程式設計師,也不能版本控制,那怎麼辦呢?我們需要Git!我這裡方案很簡單,網站檔案走主分支,而原始檔則新建分支,更換電腦後我只需要拉取新建的分支即可在新電腦上部署網站。在這裡我們先假設兩臺電腦,A電腦(公司電腦:Windows)B電腦(家裡的電腦系統:Mac),為了方便講解,以及提現Hexo的可擴充套件移植性,我們分兩個系統講解。
如何上傳部落格工程到Github
首先在公司的A電腦搭建並部署完系統後,我們需要將專案上傳到你的github上。在A電腦上執行如下命令
git init #git初始化
git remote add origin https://github.com/使用者名稱/你的GitHub使用者名稱.github.io.git #新增倉庫地址
git checkout -b 分支名 #新建分支並切換到新建的分支
git add . #新增所有本地檔案到git
git commit -m "這裡填寫你本次提交的備註,內容隨意" #git提交
git push origin 分支名 #檔案推送到hexo分支
這裡執行命令須在你建立的專案下執行,就是上文提到的<folder>
目錄。其中分支名需要你自己建立,名稱隨意,我這裡以hexo
為例。則我要上傳自己的專案命令如下
git init
git remote add origin https://github.com/techeek/techeek.github.io.git
git checkout -b hexo
git add .
git commit -m "fix bug"
git push origin hexo
之後git會詢問你的使用者名稱和暱稱,填寫正確即可將部落格工程檔案上傳到github的hexo分支下。
如何從另一臺電腦下載部落格工程
那B電腦我改如何下載專案檔案呢?很簡單,首先在B電腦上部署好Git和Node.js環境。然後輸入以下命令
git clone -b 分支名 https://github.com/使用者名稱/你的GitHub使用者
克隆下載完成後,進入到你專案的資料夾,重新配置你的hexo環境,命令如下
sudo npm install -g hexo-cli #安裝hexo,注意這裡不需要hexo初始化,否則之前的hexo配置引數會重置
sudo npm install #安裝依賴庫
sudo npm install hexo-deployer-git #安裝git部署相關配置
之後就如上文所示,建立撰寫新的文章,並使用sudo hexo g -d
命令建立並部署您的網站。值得注意的是,你的私鑰檔案需要攜帶,但極其不建議私鑰檔案放在Github,建議放在U盤或網盤中,使用時下載即可。然後拷貝到相關目錄下(Windows目錄在C:/Users/你的使用者名稱/.ssh
目錄、Mac在~/.ssh/
目錄,Ubuntu也在~/.ssh/
目錄下)即可正常部署您的網站。使用金鑰時需注意許可權,使用chmod 金鑰名稱 700
命令即可更改許可權,不更改許可權無法使用金鑰。
撰寫完後如何再次同步
寫完後如何再次同步呢?
git add .
git commit -m "這裡填寫你本次提交的備註,內容隨意"
git push origin 分支名
沒錯,這個樣就夠了~你B電腦上的資料也已經同步到Github上面了。那第二天到A電腦跟前,只需要執行以下命令就行
git pull
這樣,你的資料就全部同步到A電腦了,以後在部署完後,再次執行
git add .
git commit -m "這裡填寫你本次提交的備註,內容隨意"
git push origin 分支名
到你的Github上就行。
總結
總的來說,這樣可以來回控制你的版本,只要善用Git,你可以在任意電腦撰寫你的部落格。控制你的專案。
所以,部署完專案後A電腦和B電腦部署區別如下
A:
git add .
git commit -m "這裡填寫你本次提交的備註,內容隨意"
git push origin 分支名
B:
git pull
hexo new 文章名
hexo g -d
git add .
git commit -m "這裡填寫你本次提交的備註,內容隨意"
git push origin 分支名
A:
git pull
hexo new 文章名
hexo g -d
git add .
git commit -m "這裡填寫你本次提交的備註,內容隨意"
git push origin 分支名
迴圈執行即可,當然你也可以加入C電腦D電腦,數量不限。
好了,文章暫時就先結束了,不足之處請見諒。轉載請註明原文出處,謝謝!