如何優(yōu)雅地發(fā)布Hexo博客

次優(yōu)雅的發(fā)布hexo博客方式,為什么說是次優(yōu)雅,因為它是目前我自己所知道的比較優(yōu)雅的發(fā)布方式,可能存在其他更好的方式,歡迎指教~
轉(zhuǎn)載請注明出處:http://blog.lzoro.com,謝謝~

前言

就目前而言,我所知道的發(fā)布Hexo的博客有如下幾種:
1、原始方式,也就是在服務器上編寫md文件,然后利用hexo g來生成;
2、利用github+hook來管理,小鍋這里有一篇教程;
3、其他(hexo-admin or other plugins);
我所用的這個方式就屬于第三種,略微改進版。也許你已經(jīng)看過[那么可以概覽之后忽略],也許你沒看過,那么請耐心看完,反正都點進來了,也許有福利呢,who knows...

環(huán)境說明

格子這里所使用的環(huán)境如下:

1、阿里云 Linux 3.10.0-514.6.2.el7.x86_64
2、NodeJs 6.10.3
3、Hexo-cli: 1.0.2
4、Hexo 3.3.7
5、Hexo-admin 
6、Nginx1.9.9

本篇博客的重點在于Hexo博客的優(yōu)雅發(fā)布,所以其他必需環(huán)境的安裝大部分會簡短帶過。如果還未安裝過相關(guān)環(huán)境或者不會安裝相關(guān)環(huán)境的請自行百度,網(wǎng)上有特別豐富的教程資料,這里只給出部分鏈接供參考。

重要說明:格子未直接使用hexo server啟動hexo服務來對外提供博客的訪問,而是通過nginx作為web服務器對外提供服務。

NodeJs

下載地址

http://nodejs.cn/download/

安裝
請參考這里,注意自己選擇的安裝包。

Hexo

官網(wǎng)

https://hexo.io/

安裝
請參考這里。需要注意的是,格子這里是將環(huán)境搭建在阿里云機器上,并不是通過GitHub托管,畢竟用GitHub的子域名感覺不夠高大上,畢竟裝(chui)比(niu)要裝一整套的。所以我就花重金買了域名,買了云主機,買了oss,這樣裝備齊全之后,感覺逼格都提高了。


另:安裝完博客之后,有很多主題可供挑選,點擊這里,找到自己喜歡的主題,并給hexo換上,舒舒服服地來一發(fā)吧。

Hexo-admin

主角登場了,前面也有提到過,管理Hexo博客,我所知道的有幾種方式。用手動管理的方式未免顯得太過于原始人,即便你用本地的Markdown編輯器洋洋灑灑地寫完了一篇博客,還是得屁顛屁顛地連接到服務器,然后將文件上傳到博客服務器,再然后諂媚地告訴服務器,乖,幫我執(zhí)行一下hexo g,命令執(zhí)行完,靜態(tài)頁面生成后一篇博客才叫告一段落。
也許你不嫌麻煩,覺得這樣也挺好的,沒那么多屁事兒折騰,那么就堅持自己的做法也未嘗不可。
但是,如果你跟我一樣嫌(tai)麻(lan)煩(le)的話,那么利用Hexo-admin插件,加上自己部分diy,也許一個自己比較滿意的Hexo博客發(fā)布方式就到手了,豈不是一大爽事。

就是這個feel~倍兒爽

反正我就是懶,不要拉我,讓我懶。其實有時候這種“懶”往往能促使人進步,如果不嫌麻煩甘于重復勞動,雖然會少掉很多折騰,但也會少掉很多發(fā)現(xiàn)和進步。
好了,雞湯喝完,該說正事兒了。

hexo-admin官網(wǎng)
https://jaredforsyth.com/hexo-admin/

step 1

安裝必要環(huán)境,請參照上面

step 2

初始化博客,一般到這里你應該是已經(jīng)初始化自己的博客了,如果還沒有的話,請看下面

cd /usr/local/
hexo init yourblog
cd yourblog
npm install

step 3

安裝hexo-admin插件,并且啟動hexo服務,打開瀏覽器訪問能看到基本的界面

npm install --save hexo-admin
hexo server -d
open http://localhost:4000/admin/

登錄界面


到這里,沒進行配置的小伙伴可能還無法登錄,請接著往下看。

step 4

在hexo的_config.yml配置hexo-admin

admin:
   username: zoro
   password_hash:be121740bf988b2225a313fa1f107ca1
   secret: hey hexo
   deployCommand: './admin_script/hexo-generate.sh'
  # expire: 60*1


1、password_hash就是密碼,通過bcrypt hash,你可以用盡你一切手段對自己的密碼做一個bcrypt加密,C/Java/Python都可以,做人嘛,重要的是嗨森;
2、secret用以cookies安全;
3、deployCommand就是一個關(guān)鍵點,不要著急,下面給出說明;

主頁

  • Post:博客文章列表,包括已經(jīng)發(fā)布的和還在草稿箱等待寵幸的;
  • Pages:就是諸如標簽云之類的頁面管理;
  • About:關(guān)于admin插件的說明
  • hexo-gen:這個原來是Deploy,被我修改了,關(guān)鍵節(jié)點;
  • Settings:配置;

step 5

先解釋一下上面配置的那個deployCommand的用處,目的在于頁面上你點擊了Deploy頁面下面的Deploy按鈕的時候,所執(zhí)行的腳本,這里格子拿它來作為執(zhí)行hexo g的載體。
說到這里,可能有些人不是很理解為什么要這么做,看官莫急,聽我細細道來。
其實,當你以hexo server -d啟動了hexo服務的時候,hexo-admin插件在你修改了 某篇博已發(fā)布博客,或者新發(fā)布博客的時候,會在后臺幫你執(zhí)行一系列操作,所以這個時候,你可以通過http://localhost:4000訪問就可以看到剛才發(fā)布到博客了,看到這里,有讀者應該就要心里問候格子聲:那你是不是傻,為什么還要折騰?容我說一句,原因只有一點:以hexo server啟動的hexo對外提供的服務,并不是特別穩(wěn)定,訪問略慢,畢竟不是專門的web服務容器,而且如果你不以nohup方式啟動的話,一旦關(guān)掉Xshell等操作界面的時候,就會被迫關(guān)掉,所以帶來了一系列令人不喜的體驗,這就是我折騰的唯一原因。
因此,其實格子是以Nginx為web服務容器對外提供博客服務,每次將新博客生成靜態(tài)Html放到Nginx配置的目錄下,速度不要太快;格子的云主機只有1G內(nèi)存 單核CPU,還是能有不俗的訪問體驗,所以覺得還算沒白折騰。
有點走題,話說回來,大體的步驟是這樣:
1、Nginx提供web服務
2、hexo-admin提供博客管理
3、利用hexo-admin在瀏覽器實現(xiàn)博客編寫,或者自己本地md編輯器寫好之后粘貼到hexo-admin,后者可能更為保險,防止丟失。
4、利用hexo-admin留下來的deploy按鈕,去執(zhí)行我們放在博客服務器上的腳本,來生成html頁面;

所以,重點來了,在_config.yml里面填寫好deployCommand的存儲路徑之后,在該路徑下生成腳本;

touch hexo-generate.sh;
vim hexo-generate.sh;

輸入以下內(nèi)容

#!/usr/bin/env sh
hexo g

保存退出,并賦予執(zhí)行權(quán)限

執(zhí)行Shift+:,輸入q,如下
:q
chmod +x hexo-generate.sh

step 6

驗證效果,這里我沒有貼出Nginx的配置,稍等給出,可以先行驗證是否有效果
1、啟動hexo server
2、訪問http://localhost:4000/admin并登陸
3、進入Posts頁面,新建博客并編寫發(fā)布;
4、進入Deploy頁面(如果你還沒改掉改名稱的話),點擊下面的Deploy按鈕
5、進入博客目錄->public,查看相應的html是否有生成,如果有,那么恭喜你成功了。

這里有兩個問題:
①、hexo-admin的作者將hexo-admin的服務依賴于hexo來運行[hexo s],個人覺得有點浪費資源,但有礙于沒時間,只好暫時將就這樣。有興趣的人,可以去閱讀源碼,然后將hexo-admin處理成獨立的服務。
②、Deploy頁面的功能其實被我們diy成hexo generate的執(zhí)行者了,所以有強迫癥的小伙伴可以將頁面內(nèi)容改成具體含義的,比如格子改成了hexo-gen,修改路徑在hexo目錄下,node_modules/hexo-admin/www/bundle.js;
差不多就是這樣,突然覺得有點沒頭沒尾,因為沒有講Nginx部分,下面給出,這樣大家應該不會覺得特別亂;

Nginx

下載
http://nginx.org/en/download.html
安裝
請搜索網(wǎng)上安裝教程,特別多,這里不做重復勞動了。如果有什么問題可以留言指出。
配置

    server {
        listen 80;
        #域名,多個用空格隔開
        server_name lzoro.com blog.lzoro.com;
        #配置hexo博客目錄
        root /usr/local/hexo/public;
        location / {
                index  index.html index.htm;
        }
        access_log /tmp/logs/nginx/hexo.access.log;
    }

啟動nginx,訪問自己的域名http://blog.lzoro.com,如果沒出問題的情況下,會出現(xiàn)自己的博客,然后可以看到各篇博客的情況。

小結(jié)

發(fā)布Hexo博客的方式有好幾種,每個人的喜好不一樣,所以也無關(guān)優(yōu)劣。
格子這里帶來的方式是利用Nginx作為web容器,利用Hexo-admin作為web后臺管理來管理hexo博客,然后通過hexo-admin留下來的腳本執(zhí)行按鈕執(zhí)行hexo g生成博客靜態(tài)頁面,相當于,你只需要一個瀏覽器,無需遠程連接博客服務器,就可以輕松發(fā)布自己的博客了。
如果文章對你幫助,無妨留個言讓格子知道唄。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容