本文說明:
本文是使用Hexo搭建個人部落格系列的第二篇,主要包括
- 本地安裝hexo
- 伺服器配置
- 把個人部落格部署到伺服器
關于購買VPS和注冊域名,解析域名到IP請看:Hexo搭建個人部落格(一)
接下來讓我們一步步把部落格給搭建起來,跟着這篇部落格做,最終就可以把部落格部署到伺服器上,并且運作起來~
本地環境配置
安裝依賴環境
安裝Hexo需要先安裝node.js和git
- 下載下傳Node.js : Node.js下載下傳位址
- 下載下傳Git: Git下載下傳位址
安裝Hexo
隻需要一行指令:
$ npm install hexo-cli -g
例如我的部落格目錄是 /MyBlog
通過指令
cd /MyBlog
切換到部落格目錄
然後在部落格目錄下初始化hexo部落格,blog為部落格名,可随意更改
hexo init blog
進入部落格目錄并安裝插件依賴
cd blog
npm install
最後執行指令
hexo g
hexo s
順利的話,應該能看到終端列印出位址:http://localhost:4000/
點選位址打開浏覽器,應該能看到Hexo預設主題的界面了~當然,我的主題已經換了,是以打開是這樣的:
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiI0NXYFhGd192UvwVe0lmdhJ3ZvwFM38CXlZHbvN3cpR2Lc1TPB10QGtWUCpEMJ9CXsxWam9CXwADNvwVZ6l2c052bm9CXUJDT1wkNhVzLcRnbvZ2Lc1TPRVmN5YlWxgXbZZXUYpVd1kmYr50MZV3YyI2cKJDT29GRjBjUIF2LcRHelR3LcJzLctmch1mclRXY39TMzEDMwUTNzITOyITM3EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
安裝部署依賴環境
部署Hexo使用
hexo deploy
指令即可,但是在這之前,需要先安裝依賴環境server和deploy-git
在終端輸入:
$ npm install hexo-server --save #
$ npm install hexo-deployer-git --save
至此,本地環境就搭建好了,除了這個,我們還需要搭建伺服器的環境,是以接下來就是伺服器的配置。
伺服器配置
安裝Git和NodeJS
隻需要兩行指令
$ yum install git # 安裝git
curl --silent --location https://rpm.nodesource.com/setup_5.x | bash - # 安裝NodeJS
建立Git使用者
為了能讓Hexo直接部署到VPS上,需要在伺服器建立使用者git
- 步驟:
adduser git # 添加git使用者
sudo passwd git # 給git使用者設定密碼
chmod /etc/sudoers
vim /etc/sudoers
然後找到這一行
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
并添加
接下來我們需要把電腦的公鑰配置到伺服器,這樣才能向伺服器送出代碼
su git
mkdir ~/.ssh
vim ~/.ssh/authorized_keys
#然後在本地執行 cat ~/.ssh/id_rsa.pub | pbcopy ,将公鑰複制粘貼到authorized_keys
chmod ~/.ssh/authorzied_keys
chmod ~/.ssh
OK,到這裡,我們就把伺服器git使用者給配置完了,可以通過指令
來測試一下,是不是可以免密碼登陸到伺服器,如果可以,那就說明沒問題了。
安裝和配置Nginx
安裝Nginx
由于我的vps上運作的是CentOS 6 的系統,直接安裝Nginx會報錯,解決方法請參考這篇部落格:CentOS 6 安裝Nginx
CentOS 7 可以直接執行指令:
$ sudo yum install epel-release
$ sudo yum install nginx
然後再啟動Nginx:
sudo systemctl start nginx
CentOS 6 啟動Nginx的指令應該是:
/etc/init.d/nginx start
這個時候在浏覽器輸入伺服器ip位址或者域名,就能看到Nginx歡迎頁。
配置Nginx
- 在 /etc/nginx/conf.d/ 建立虛拟主機配置檔案 blog.conf
加入以下内容:
- server_name: 改成你的伺服器名字,或者域名
- root: 改成你的部落格根目錄
server
{
listen ;
#listen [::]:80;
server_name bluelzy.com www.bluelzy.com;
index index.html index.htm index.php default.html default.htm default.php;
#這裡要改成網站的根目錄
root /var/www/hexo;
include other.conf;
}
然後再重新開機一下Nginx,即可
service nginx restart
建立Git倉庫
既然本地環境配好了,伺服器所需要的環境也配好了,那麼現在就需要在伺服器建一個倉庫,用來管理部落格的代碼,這一塊比較重要,關乎到能不能成功部署部落格。
其實就是兩步:
- 建立倉庫
- 設定git hook
建立倉庫
執行以下指令:
$ cd ~
$ mkdir blog.git && cd blog.git
$ git init --bare
解釋一下這一行:
git init --bare
意思是初始化一個裸倉庫,建立一個裸倉庫,并且這個倉庫是可以被正常 clone 和 push 更新的, 裸倉庫不包含工作區,是以并不會存在在裸倉庫上直接送出變更的情況。
設定git hook
我們使用 post-receive這個鈎子.在 ~/blog.git 裸庫的 hooks檔案夾中,
建立post-receive檔案。
vim ~/blog.git/hooks/post-receive
在檔案中加入:
#!/bin/sh
git --work-tree=/var/www/hexo --git-dir=~/blog.git checkout -f
注意: –work-tree=/var/www/hexo 要改成你的部落格根目錄,也就是上面Nginx配置檔案中的root
儲存退出(wq)
然後再賦予這個檔案運作的權限
chmod +x post-receive
OK,到這一步,伺服器的配置也已經全部完成了。
恭喜你,如果能按着部落格一步步看到這裡,并且一切正常,那麼你離成功搭建一個部落格,還差最後一步….
本地配置_config.yml
打開Hexo站點目錄下的_config.yml檔案,找到 deploy關鍵字
deploy:
type: git
repo: [email protected]:/home/git/blog.git // 倉庫位址
branch: master
message: 送出的資訊
把SERVER改成你的伺服器位址,然後儲存檔案,大功告成!
測試
我們使用
hexo clean
hexo g
hexo d
把Hexo從本地部署到伺服器上,執行完之後,在浏覽器通路你的伺服器位址,應該就能看到部落格首頁了。
以後寫好文章,再執行上面這三句指令,就可以實作自動化部署了,真是人生一大樂事(捂嘴)
總結&期望
這篇文章從本地環境到伺服器環境,再到自動化部署都作了一個詳細的說明,從無到有搭建起了一個個人部落格。接下來我會結合自己的部落格,介紹一下
- 主題選擇
- 主題配置
- 第三方服務
參考
- 從 0 開始搭建 hexo 部落格
- 阿裡雲VPS搭建自己的的Hexo部落格
- 開始新的折騰,Hexo部落格Git-VPS部署完整記錄