如何在個(gè)人服務(wù)器上部署Hexo博客

Hexo是github上一個(gè)優(yōu)秀的開(kāi)源博客框架,支持markdown解析文章引矩,有多種第三方主題插件供選擇严里。 Hexo默認(rèn)使用github倉(cāng)庫(kù)作為資源掛載庫(kù)择浊,也就是說(shuō)配置好的Hexo博客是部署在github上的, 你只需要自己購(gòu)買(mǎi)一個(gè)域名解析到對(duì)應(yīng)的github-page就行了捣域。

這樣的部署方式雖然比較便捷啼染,但github訪問(wèn)有時(shí)候會(huì)出現(xiàn)問(wèn)題,且為了擺脫這種寄人籬下的感覺(jué)焕梅, 本篇講介紹如何將博客部署到個(gè)人的服務(wù)器迹鹅。

服務(wù)器: 騰訊云 ubuntu16.04 LTS 編譯環(huán)境: nodeJS 8.9.4

大致思路:

1 在云服務(wù)器上建立私人git服務(wù)器并配置本地倉(cāng)庫(kù)

2 在個(gè)人開(kāi)發(fā)pc上下載hexo框架源碼,并在配置文件中設(shè)置push到云服務(wù)器上的私人倉(cāng)庫(kù)贞言。

3 pc打包上傳hexo靜態(tài)文件并上傳到服務(wù)器上的私人倉(cāng)庫(kù)

4 倉(cāng)庫(kù)中設(shè)置git鉤子將已上傳的靜態(tài)資源拷貝到自定義目錄下

5 通過(guò)nginx部署web服務(wù)斜棚,配置靜態(tài)資源訪問(wèn)目錄到自定義目錄。

下面是詳細(xì)教程

首先安裝最新版的nodeJS

我是直接在官網(wǎng)下載的,(官網(wǎng)下載地址),下載下來(lái)后是一個(gè)xz格式的壓縮包, 通過(guò)二次解壓后會(huì)得到一個(gè)帶有bin目錄的文件夾弟蚀。將整個(gè)文件夾重新命名為node8,然后在~/.bashrc文件末尾添添加環(huán)境變量:

export NODE_HOME=/home/ubuntu/node8

export PATH=$NODE_HOME/bin:$PATH

配置完畢后記得使用source命令使其生效蚤霞。服務(wù)器和開(kāi)發(fā)PC上都要安裝nodeJS編譯環(huán)境。

在服務(wù)器上建立git服務(wù)器并配置博客倉(cāng)庫(kù)

自定義個(gè)人倉(cāng)庫(kù)地址义钉,這里我選擇了當(dāng)前用戶(hù)根目錄昧绣。即/home/ubuntu目下,使用命令:

mkdir blog.git

cd blog.git

git init --bare

便完成了倉(cāng)庫(kù)初始化。

PC上隨便找個(gè)地方捶闸,輸入命令

git clone yourusername@server_ip:~/path/to/your/blog.git

測(cè)試下能否克隆成功滞乙,能則繼續(xù),不行的話(huà)將本機(jī)的ssh公鑰粘貼到服務(wù)器的.ssh目錄中的authorized_keys文件里鉴嗤。

PC上配置安裝Hexo開(kāi)發(fā)環(huán)境

npm install hexo-cli -g? #安裝hexo構(gòu)建工具

hexo init blog #初始化hexo工程

cd blog #進(jìn)入工程根目錄

npm install #安裝依賴(lài)

hexo server? #啟動(dòng)本地調(diào)試服務(wù)器

然后打開(kāi)瀏覽器輸入 http://localhost:4000/ 就能看到博客界面了

若端口已占用斩启,可輸入

hexo s -p 端口號(hào) #切換端口

hexo官網(wǎng)上提供了許多主題,有興趣的小伙伴自行搜索下載,地址醉锅。

下載完后將主題包放到hexo的themes目錄下兔簇,然后修改_config.yml中theme為對(duì)應(yīng)的包名就可以了。

下面是hexo的常用命令

hexo s? #開(kāi)啟本地調(diào)試

hexo g? #編譯靜態(tài)資源

hexo new 'title'? #生成一篇新的md文件硬耍,即博客內(nèi)容

hexo d #將靜態(tài)資源push到倉(cāng)庫(kù)

在本地調(diào)試完畢后垄琐,我們要如何上傳資源到服務(wù)器上呢?

修改_config.yml文件,在deploy項(xiàng)中填寫(xiě):

deploy:

? ? type: git

? ? message: update

? ? repo: yourusername@server_ip:~/path/to/your/blog.git,master

然后每次上傳前经柴,先使用 hexo g 重新打包狸窘,再使用 hexo d (可能會(huì)提示輸入ssh登錄密碼) 就可以成功上傳了。

上傳成功后通過(guò)nginx部署hexo資源

首先修改hooks文件

cd /path/to/your/blog.git/hooks

touch post-receive

vim post-receive

使用如下的腳本

#!/bin/bash -l

GIT_REPO=/home/ubuntu/blog.git

TMP_GIT_CLONE=/home/ubuntu/tmp/blog

PUBLIC_WWW=/home/ubuntu/project/blog

rm -rf ${TMP_GIT_CLONE}

git clone $GIT_REPO $TMP_GIT_CLONE

rm -rf ${PUBLIC_WWW}

cp -rf ${TMP_GIT_CLONE} ${PUBLIC_WWW}

其中public_www就是用于最終存放nginx映射的靜態(tài)資源文件目錄坯认。 通過(guò)此腳本翻擒,每次倉(cāng)庫(kù)接收到新上傳的內(nèi)容時(shí)都會(huì)自動(dòng)拷貝資源到該目錄下绍些。 tmp目錄可能要自己新建滤祖。

然后記得更改腳本和各目錄的權(quán)限

chmod +x post-receive

chmod 777 -R /path/to/your/blog

最后便是修改nginx配置咯

server {

listen 80 ;

root /home/ubuntu/project/blog;

server_name www.redtreeai.com redtreeai.com;? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

access_log? /home/ubuntu/nginxlog/blog_access.log;? ? ? ? ? ? ? ? ? ? ? ?

error_log? /home/ubuntu/nginxlog/blog_error.log;? ? ? ? ? ? ? ? ? ? ? ? ?

location / {? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

? ? root /home/ubuntu/project/blog;

? ? if (-f $request_filename) {

? ? ? ? rewrite ^/(.*)$? /$1 break;

? ? }

}? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

}

配置完畢后重啟nginx服務(wù)就可以實(shí)現(xiàn)遠(yuǎn)程自動(dòng)部署了, 之后pc端每次打包上傳代碼后服務(wù)器會(huì)自動(dòng)更新資源迫筑。

喜歡的點(diǎn)個(gè)賞吧~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末引润,一起剝皮案震驚了整個(gè)濱河市巩趁,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌淳附,老刑警劉巖议慰,帶你破解...
    沈念sama閱讀 206,126評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異奴曙,居然都是意外死亡别凹,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)缆毁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)番川,“玉大人,你說(shuō)我怎么就攤上這事“涠剑” “怎么了践啄?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,445評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)沉御。 經(jīng)常有香客問(wèn)我屿讽,道長(zhǎng),這世上最難降的妖魔是什么吠裆? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,185評(píng)論 1 278
  • 正文 為了忘掉前任伐谈,我火速辦了婚禮,結(jié)果婚禮上试疙,老公的妹妹穿的比我還像新娘诵棵。我一直安慰自己,他們只是感情好祝旷,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布履澳。 她就那樣靜靜地躺著,像睡著了一般怀跛。 火紅的嫁衣襯著肌膚如雪距贷。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 48,970評(píng)論 1 284
  • 那天吻谋,我揣著相機(jī)與錄音忠蝗,去河邊找鬼。 笑死漓拾,一個(gè)胖子當(dāng)著我的面吹牛阁最,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播晦攒,決...
    沈念sama閱讀 38,276評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼闽撤,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼得哆!你這毒婦竟也來(lái)了脯颜?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 36,927評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤贩据,失蹤者是張志新(化名)和其女友劉穎栋操,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體饱亮,經(jīng)...
    沈念sama閱讀 43,400評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡矾芙,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了近上。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片剔宪。...
    茶點(diǎn)故事閱讀 37,997評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出葱绒,到底是詐尸還是另有隱情感帅,我是刑警寧澤,帶...
    沈念sama閱讀 33,646評(píng)論 4 322
  • 正文 年R本政府宣布地淀,位于F島的核電站失球,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏帮毁。R本人自食惡果不足惜实苞,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望烈疚。 院中可真熱鬧黔牵,春花似錦、人聲如沸爷肝。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,204評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)阶剑。三九已至跃巡,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間牧愁,已是汗流浹背素邪。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,423評(píng)論 1 260
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留猪半,地道東北人兔朦。 一個(gè)月前我還...
    沈念sama閱讀 45,423評(píng)論 2 352
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像磨确,于是被迫代替她去往敵國(guó)和親沽甥。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評(píng)論 2 345

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