hexo搭建個人博客完整版

環(huán)境說明

  1. 阿里云服務器 ubuntu server操作系統(tǒng)
  2. NodeJs v6.11.3(v8版本以上使用hexo-admin會有一個error出現(xiàn),強迫癥受不了nodejs降級了)
  3. Hexo-cli:1.1.0
  4. Hexo:3.7.1
  5. Hexo-admin
  6. Nginx:1.10.3
  7. 暢言評論系統(tǒng)
  8. ShareSDK:分享系統(tǒng)(用于分享到微信僻爽、微博等)
  9. 七牛云/極簡圖床:用于存儲外聯(lián)圖片和音樂

安裝NodeJS

  1. 方法一:官網(wǎng)下載安裝包進行安裝(百度)
  2. 方法二:換源下載(百度)

nodejs升級或版本降級

  1. 使用npm安裝一個模塊n到全局:
npm install -g n
  1. 使用n加版本號的方式可以安裝到其他版本,比如:
n 6.11.3
  1. 在使用n通過上下鍵就可以選擇不同的版本(注意檬寂,從低版本到高版本時可以共存欠肾,高到低時只會保留低版本)

安裝hexo

npm install hexo-cli -g
hexo init blog(生成的博客文件夾的名字拱雏,自定義,會在對應執(zhí)行該語句的路徑生成對應的文件)
cd blog
npm install
hexo server

安裝hexo-admin

npm install --save hexo-admin
hexo server -d(開啟hexo操作)
  • 現(xiàn)在打開http://IP:4000/admin/會發(fā)現(xiàn)顯示沒有找到對應的目錄,需要配置hexo-admin,打開blog目錄下的_config.yml配置hexo-admin
admin:
    username: XXXX(自己設置用戶名)
    password_hash: XXXXXXXXX(密碼济锄,但是是明文經(jīng)過bcrypt hash加密后生成的)
    secret: hey hexo(用于cookie安全)
    deployCommand: './admin_script/hexo-generate.sh'(調(diào)用該腳本)
  • 關(guān)于bcrypt加密具體的需要百度聊浅,我也沒怎么弄懂餐抢,但是當時是用JAVA實現(xiàn)的现使,需要去下載一個jar包,源碼如下:
package com.zhou;

import java.security.NoSuchAlgorithmException;//需要引入的包

/**
 * Created by 強 on 2018/9/28.
 */
public class BcryptHashingExample {
    public static void main(String[] args) throws NoSuchAlgorithmException<br>
    {<br>
        String  originalPassword = "XXXXXX";//設置密碼

        System.out.println(originalPassword.substring(1, originalPassword.length()));
        String generatedSecuredPasswordHash = BCrypt.hashpw(originalPassword, BCrypt.gensalt(12));
        System.out.println(generatedSecuredPasswordHash);

        boolean matched = BCrypt.checkpw(originalPassword, generatedSecuredPasswordHash);
        System.out.println(matched);

    }
}
  • 在配置完密碼后可以登錄上面的網(wǎng)址訪問管理主頁了旷痕。
  • 由于之前配置了deployCommand,所以現(xiàn)在還需要在_config.yml/admin_scripts創(chuàng)建一個deployCommand文件:
touch hexo-generate.sh;<br>
vim hexo-generate.sh;<br>
文件內(nèi)容如下:<br>
#!/bin/bash sh<br>
hexo g<br>
  • 退出文件后chmod +x deployCommand修改權(quán)限碳锈,然后啟動hexo server, 再訪問http://IP:4000/admin登錄寫文章并且到Deploy中點擊deploy發(fā)布,發(fā)現(xiàn)前臺頁面生成即可表示成功
  • hexo server進程一直在后臺運行的辦法(執(zhí)行hexo server -d &在一段時間后會停止hexo欺抗,此時無法打開后臺):采用pm2接管hexo進程
  • 安裝pm2:
npm install -g pm2
  • 在博客的根目錄下創(chuàng)建一個hexo_run.js的文件售碳,文件內(nèi)容如下:
const { exec } = require('child_process')
exec('hexo server -d',(error, stdout, stderr) => {
        if(error){
                console.log('exec error: ${error}')
                return
        }
        console.log('stdout: ${stdout}');
        console.log('stderr: ${stderr}');
})
  • 運行開啟命令: pm2 start hexo_run.js
  • 最后附上我寫的一個hexo重啟腳本restart_hexo.sh(需要先配置好nginx),需要重啟刷新的時候執(zhí)行source restart_hexo.sh即可:
#!/bin/bash
PROCESS=`ps -ef|grep hexo|grep -v grep|grep -v PPID|awk '{ print $2}'`
PROC_NAME="pm2"
for i in $PROCESS
do
  echo "Kill the $1 process [ $i ]"
  kill -9 $i
done
hexo clean #清除數(shù)據(jù)
hexo generate #生成靜態(tài)文件public文件夾
ProcNumber=`ps -ef |grep -w $PROC_NAME|grep -v grep|wc -l`
if [ $ProcNumber -le 0 ];then
    pm2 start hexo_run.js
else
    pm2 restart hexo_run.js
fi
service nginx restart

nginx配置

  1. nginx安裝(網(wǎng)上教程很多绞呈,最簡單的方式就是apt-get):
sudo apt-get install nginx
  1. 我采用的apt-get方式贸人,然后打開/etc/nginx/nginx.conf文件:
include /etc/nginx/conf.d/*.conf;//注釋掉
include /etc/nginx/sites-enabled/*;//注視掉
server {
        listen 80; //開啟的端口號
        server_name xxxx localhost; //解析的域名,多個域名中間用空格
        location / {
        root /root/my-blog/public; //鏈接到的hexo的目錄,我放在根目錄下所以是/root/my-blog,還請根據(jù)對應的修改
        }
    } //加入

修改hexo樣式

  • 到hexo官網(wǎng)尋找一款覺得滿意的主題鏈接到對應的github佃声,下面一般都有下載說明
  • 下載的文件放到對應的theme文件夾下
  • 修改/my-blog/下的_config.yml文件:
theme: 對應的theme下要選擇的主題文件夾名
  • 對相應的樣式進行調(diào)整修改

hexo主頁下的tag標簽艺智、category標簽無顯示找不到

  • 解決辦法: 在主目錄下執(zhí)行 hexo new page "tags"或者hexo new page "category"
  • 在/source/tags/index.md中設置修改
---
date: 2018-10-02 19:31:00
type: "tags"
comments: false
---
  • 同理categories:
---
date: 2018-10-02 19:37:05
type: "categories"
comments: false
---
  • 或者about me:
---
title: 關(guān)于我
type: "about-me"
date: 2018-10-02 19:36:51
comments: false
---

集成暢言評論系統(tǒng):

  1. 注冊,獲取APP ID 和APP KEY
  2. 進入到theme下的主題下圾亏,打開_config.yml文件十拣,找到comment那一段配置,我的配置如下(和具體的主題有關(guān)志鹃,有的可能比較復雜):
comment:
  # your disqus_shortname
  disqus:
  changyan:
    appid: 'XXXX'
    conf: 'XXXXX'
  youyan:
  # gitment: https://github.com/imsun/gitment
  # make sure you know how to set it
  gitment:
    owner:
    repo:
    oauth:
      client_id:
      client_secret:

集成分享系統(tǒng)

  1. mob系統(tǒng)注冊賬號
  2. 進入后臺管理
  3. 新建應用
  4. 進入hexo應用管理頁面夭问,添加ShareSDK功能
  5. 記錄AppKey
  6. web集成文檔
    中找到集成代碼,將appkey改成剛才生成的弄跌,copy代碼待用
  7. 進入theme下的theme/XXX/layout/_partial文件夾下甲喝,新建一個shares.ejs,將剛才的代碼拷貝進去
  8. 打開同目錄下的article.ejs,在article body最后引用此代碼:
<%- partial('shares') %>
  1. 重啟即可

增加打賞功能

  1. 在layout/_partial目錄下新建donate.ejs文件铛只,輸入以下內(nèi)容:
<! -- 添加捐贈圖標 -->
<div class ="post-donate">
    <div id="donate_board" class="donate_bar center">
        <a id="btn_donate" class="btn_donate" href="javascript:;" title="打賞"></a>
        <span class="donate_txt">
           &uarr;<br>
           <%=theme.donate_message%>
        </span>
        <br>
      </div>  
    <div id="donate_guide" class="donate_bar center hidden" >
        <!-- 支付寶打賞圖案 -->
        <img src="<%- theme.root_url %>/img/Alipay.jpg" alt="支付寶打賞">
        <!-- 微信打賞圖案 -->
        <!-- img src="/img/weixin.jpg" alt="微信打賞" -->  
    </div>
    <script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
    <script type="text/javascript">
        document.getElementById('btn_donate').onclick = function(){
            $('#donate_board').addClass('hidden');
            $('#donate_guide').removeClass('hidden');
        }
    </script>
</div>
<! -- 添加捐贈圖標 -->
  1. 在source/css下新建一個donate.css,內(nèi)容如下:
.donate_bar {
    text-align: center;
    margin-top: 5%
}

.donate_bar a.btn_donate {
    display: inline-block;
    width: 82px;
    height: 82px;
    margin-left: auto;
    margin-right: auto;
    background: url(http://img.t.sinajs.cn/t5/style/images/apps_PRF/e_media/btn_reward.gif)no-repeat;
    -webkit-transition: background 0s;
    -moz-transition: background 0s;
    -o-transition: background 0s;
    -ms-transition: background 0s;
    transition: background 0s
}

.donate_bar a.btn_donate:hover {
    background-position: 0 -82px
}

.donate_bar .donate_txt {
    display: block;
    color: #9d9d9d;
    font: 14px/2 "Microsoft Yahei"
}
.donate_bar.hidden{
    display: none
}

.post-donate{
    margin-top: 80px;
}

#donate_guide{
    height: 210px;
    width: 420px;
    margin: 0 auto;
}

#donate_guide img{
    height: 200px;
    height: 200px;
}
  1. donate.css引入到同目錄下的style.css中
  2. 將支付寶的二維碼/微信二維碼拷貝到source/img文件夾下,img文件夾新建
  3. 在layout/_partial/article.ejs中的article的末尾添加以下代碼:
<% if (theme.donate){ %>
    <%- partial('donate') %>
<% } %>
  1. 在主題的_config.yml中配置以下內(nèi)容:
Alipay: /img/Alipay.jpg
#是否開啟打賞功能
donate: true
#打賞文案
donate_message: 欣賞此文糠溜?求鼓勵淳玩,求支持!
  1. 重啟測試

參考鏈接:

https://www.cnblogs.com/conserdao/p/6876381.html

https://hexo.io/zh-cn/

http://www.reibang.com/p/68e727dda16d

https://hadronw.com/2018/05-28/hexo-addshares/

http://cighao.com/2016/02/23/add-donate-to-hexo/

https://blog.csdn.net/tangcuyuha/article/details/80331169

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末非竿,一起剝皮案震驚了整個濱河市蜕着,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌红柱,老刑警劉巖承匣,帶你破解...
    沈念sama閱讀 216,997評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異锤悄,居然都是意外死亡韧骗,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評論 3 392
  • 文/潘曉璐 我一進店門零聚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來袍暴,“玉大人些侍,你說我怎么就攤上這事≌#” “怎么了岗宣?”我有些...
    開封第一講書人閱讀 163,359評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長淋样。 經(jīng)常有香客問我耗式,道長,這世上最難降的妖魔是什么趁猴? 我笑而不...
    開封第一講書人閱讀 58,309評論 1 292
  • 正文 為了忘掉前任纽什,我火速辦了婚禮,結(jié)果婚禮上躲叼,老公的妹妹穿的比我還像新娘芦缰。我一直安慰自己,他們只是感情好枫慷,可當我...
    茶點故事閱讀 67,346評論 6 390
  • 文/花漫 我一把揭開白布让蕾。 她就那樣靜靜地躺著,像睡著了一般或听。 火紅的嫁衣襯著肌膚如雪探孝。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,258評論 1 300
  • 那天誉裆,我揣著相機與錄音顿颅,去河邊找鬼。 笑死足丢,一個胖子當著我的面吹牛粱腻,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播斩跌,決...
    沈念sama閱讀 40,122評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼绍些,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了耀鸦?” 一聲冷哼從身側(cè)響起柬批,我...
    開封第一講書人閱讀 38,970評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎袖订,沒想到半個月后氮帐,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,403評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡洛姑,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,596評論 3 334
  • 正文 我和宋清朗相戀三年上沐,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片吏口。...
    茶點故事閱讀 39,769評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡奄容,死狀恐怖冰更,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情昂勒,我是刑警寧澤蜀细,帶...
    沈念sama閱讀 35,464評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站戈盈,受9級特大地震影響奠衔,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜塘娶,卻給世界環(huán)境...
    茶點故事閱讀 41,075評論 3 327
  • 文/蒙蒙 一归斤、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧刁岸,春花似錦脏里、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,705評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至酝碳,卻和暖如春矾踱,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背疏哗。 一陣腳步聲響...
    開封第一講書人閱讀 32,848評論 1 269
  • 我被黑心中介騙來泰國打工呛讲, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人返奉。 一個月前我還...
    沈念sama閱讀 47,831評論 2 370
  • 正文 我出身青樓贝搁,卻偏偏與公主長得像,于是被迫代替她去往敵國和親衡瓶。 傳聞我的和親對象是個殘疾皇子徘公,可洞房花燭夜當晚...
    茶點故事閱讀 44,678評論 2 354

推薦閱讀更多精彩內(nèi)容