成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Hexo快速搭建靜態(tài)博客并實(shí)現(xiàn)遠(yuǎn)程VPS自動(dòng)部署

keke / 2230人閱讀

摘要:提示,如果需要通過實(shí)現(xiàn)服務(wù)器自動(dòng)化部署,推薦使用會(huì)更方便一些然后在目錄初始化本地倉庫并提交到這時(shí)候上已經(jīng)有我提交的代碼了。再新建一個(gè)文件處理部署相關(guān)腳本,內(nèi)容如下將新增的與兩個(gè)文件到服務(wù)器。

這篇文章將如何搭建hexo,以及如何通過git webhooks實(shí)現(xiàn)遠(yuǎn)程vps的自動(dòng)部署

這篇文章適合的條件:

簡單的用于個(gè)人博客、公司博客展示,hexo的定位是靜態(tài)博客,要實(shí)現(xiàn)動(dòng)態(tài)服務(wù)器的功能并不適合

有自己私有的服務(wù)器、vps、域名

git倉庫,Github或國內(nèi)的Coding.net

hexo本地部署

流程:先在本機(jī)搭建好hexo環(huán)境,push到git倉庫,再部署到服務(wù)器上。

第一步,安裝hexo命令行工具,這個(gè)工具在服務(wù)器端也需要執(zhí)行安裝

npm install hexo-cli -g

第二部,生成一個(gè)本地hexo項(xiàng)目

# 創(chuàng)建blog目錄,并初始化hexo項(xiàng)目
hexo init blog
cd blog
# 安裝hexo依賴,hexo是基于nodejs開發(fā)的,npm是nodejs的包管理工具
npm install
# 啟動(dòng)本地服務(wù),打開localhost:4000測試是否成功
hexo server

第三部,新建一篇文章

hexo new "My First Post"
# 啟動(dòng)本地服務(wù),查看效果
hexo server

這樣,在/source/_posts目錄下就生成了了my-first-post.md這樣一個(gè)文件,.md是markdown文件的擴(kuò)展名,我們可以使用自己喜歡的工具去編輯markdown,比如Sublime Text。

這里推薦一個(gè)Sublime Text插件,給人家免費(fèi)推廣了,OmniMarkupPreviewer。

提交到遠(yuǎn)程倉庫

你得需要一個(gè)遠(yuǎn)程倉庫托管代碼,可以使用Github或國內(nèi)的Coding.net,因?yàn)槲矣行╉?xiàng)目屬于私有項(xiàng)目,Github開私有項(xiàng)目是需要收費(fèi)的,所以我選擇的是國內(nèi)的Coding.net,速度也比較理想。

先在coding上新建一個(gè)項(xiàng)目名為hexo,并拷貝倉庫ssh地址(使用ssh需要配置ssh公鑰和私鑰,如果不會(huì)配可以google或使用http地址)。

提示,如果需要通過webhooks實(shí)現(xiàn)服務(wù)器自動(dòng)化部署,推薦使用ssh會(huì)更方便一些

然后在hexo目錄初始化本地倉庫并提交到coding

git init
git remote add origin [email protected]:lianer/hexo-blog.git
git add .
git commit -m "publish"
git push origin master

這時(shí)候coding上已經(jīng)有我提交的代碼了。

服務(wù)器環(huán)境配置

登錄你自己的vps服務(wù)器,安裝好nodejs,git,nginx,個(gè)人服務(wù)器還是推薦使用ubuntu,安裝這些工具很容易,具體百度或谷歌。

我在公司搭的hexo,公司服務(wù)器使用的是centos,git我是請(qǐng)運(yùn)維同學(xué)幫我安裝的,比較麻煩。

將代碼從遠(yuǎn)程倉庫拉下來

同樣的服務(wù)器也需要配置ssh才能使用ssh地址,否則還是使用http地址吧。

在這里,我直接把項(xiàng)目放在root目錄下了。

mkdir hexo
git init
git remote add origin [email protected]:lianer/hexo-blog.git
git pull origin master
安裝hexo模塊
cd ~/hexo
npm install hexo-cli -g
npm install
hexo靜態(tài)編譯
hexo g

這一步會(huì)在hexo目錄下生成一個(gè)public目錄,這里面就是編譯后的靜態(tài)文件目錄,
其實(shí)這時(shí)候直接訪問里面的html文件即可看到完整的效果了,只不過還需要一個(gè)服務(wù)來運(yùn)行它。

配置nginx

進(jìn)入nginx服務(wù)配置文件目錄,該目錄下應(yīng)該已經(jīng)有一個(gè)default.conf,不去管它,另外新建一個(gè)配置文件

cd /etc/nginx/conf.d/
vi hexo.conf

在hexo.conf中輸入以下內(nèi)容并保存,注意細(xì)節(jié),不要少分號(hào)。

server {
    listen          80;  # 監(jiān)聽端口
    server_name     imlianer.com www.imlianer.com;  # 你的域名
    location / {
        root        ~/hexo;
        index        index.html;
    }
}

重載nginx,使配置生效。

nginx -s reload

然后就可以通過 http://imlianer.com 訪問hexo了。

Git WebHooks 自動(dòng)化部署

是不是覺得每次寫完文章還要登錄服務(wù)器去執(zhí)行一次git pull很麻煩?

ok,git有很多鉤子,可以在倉庫發(fā)生變化的時(shí)候觸發(fā),類似js中的事件。
WebHooks就是在你本地執(zhí)行g(shù)it push的時(shí)候,
遠(yuǎn)程倉庫(coding)會(huì)檢測到倉庫的變化,并發(fā)送一個(gè)請(qǐng)求到我們配置好的WebHooks。

實(shí)現(xiàn)WebHooks自動(dòng)化部署的推薦條件:

服務(wù)器端配置ssh認(rèn)證

服務(wù)器端配置nodejs服務(wù),接收Coding發(fā)來的請(qǐng)求

遠(yuǎn)程倉庫配置WebHooks

Coding WebHooks 配置界面

這張圖的配置的意思是:當(dāng)倉庫發(fā)生push的時(shí)候,會(huì)發(fā)送一個(gè)請(qǐng)求到http://imlianer.com/webhooks/...。

為了服務(wù)端的簡易處理,這里沒有使用token,而是將url地址當(dāng)做token,123456就充當(dāng)了token的角色。

到這,倉庫這邊的配置就完成了,接下來的問題就是服務(wù)器如何接收這個(gè)請(qǐng)求并重新部署hexo了。

服務(wù)器配置響應(yīng)WebHooks的服務(wù)

我使用的是nodejs,其它語言也可以。

在本地hexo目錄中新建一個(gè)webhooks.js文件,內(nèi)容如下:

var http = require("http")
var exec = require("child_process").exec

http.createServer(function (req, res) {
    // 該路徑與WebHooks中的路徑部分需要完全匹配,實(shí)現(xiàn)簡易的授權(quán)認(rèn)證。
    if(req.url === "/webhooks/push/123456"){
        // 如果url匹配,表示認(rèn)證通過,則執(zhí)行 sh ./deploy.sh
        exec("sh ./deploy.sh")
    }
    res.end()
}).listen(4002)

這段代碼就能啟動(dòng)一個(gè)nodejs服務(wù),監(jiān)聽4002端口。
當(dāng)請(qǐng)求過來的url完全匹配的時(shí)候,執(zhí)行deploy.sh。

再新建一個(gè)文件deploy.sh處理部署相關(guān)腳本,內(nèi)容如下:

git pull origin master
hexo g

將新增的webhooks.js與deploy.sh兩個(gè)文件push到服務(wù)器。

然后在服務(wù)器中啟動(dòng)nodejs服務(wù)監(jiān)聽webhooks

node ./webhooks.js

這樣,當(dāng)你本地提交文章的時(shí)候,服務(wù)器就會(huì)自動(dòng)部署啦。

如果你使用上面的命令運(yùn)行nodejs服務(wù),nodejs服務(wù)會(huì)在前臺(tái)運(yùn)行,
可以使用pm2使nodejs運(yùn)行在后臺(tái)。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/39350.html

相關(guān)文章

  • VPS搭建個(gè)人Hexo博客

    摘要:原文地址作為一個(gè)天天造的人,必然要經(jīng)常訪問谷歌等網(wǎng)站,所以前些日子買了自己搭了梯子。今天就跟大家分享一下,如何使用搭建個(gè)人博客。創(chuàng)建用戶,建立裸庫,配置。 原文地址:https://www.xksblog.top/use-V... 作為一個(gè)天天造BUG的人,必然要經(jīng)常訪問谷歌等網(wǎng)站,所以前些日子買了VPS自己搭了梯子。但如果只是用VPS來搭梯子那就太浪費(fèi)了,所以又折騰了一天,把自己之...

    warmcheng 評(píng)論0 收藏0
  • 如何在服務(wù)器上搭建hexo博客

    原文鏈接 隨著Vateral主題的開發(fā)接近了尾聲,在對(duì)主題速度優(yōu)化的時(shí)候發(fā)現(xiàn)之前用的githubpage問題多多:首先就是因?yàn)樵趪鴥?nèi)的原因,訪問速度本身就很慢,曾經(jīng)有次加載一張16kb的圖標(biāo)時(shí)間耗費(fèi)了26s?。。科浯?,在對(duì)資源做CDN托管加速時(shí),域名是需要備案的,顯然githubpage也是做不了的;所以果斷舍棄了這個(gè)把hexo搭建到了我的阿里云服務(wù)器上 總體來說還是比把hexo搭建到github...

    MycLambert 評(píng)論0 收藏0
  • 阿里云VPS搭建自己的的Hexo博客

    摘要:博客的架構(gòu)先搞明白博客從搭建到自動(dòng)發(fā)布的架構(gòu),才能更好的理解我們每一步進(jìn)行的操作。整個(gè)搭建流程第一部分服務(wù)器環(huán)境搭建,包括安裝配置創(chuàng)建用戶。在裸庫的文件夾中,新建文件。 1. 博客的架構(gòu) 先搞明白Hexo博客從搭建到自動(dòng)發(fā)布的架構(gòu),才能更好的理解我們每一步進(jìn)行的操作。不然只跟著步驟過了一遍,卻不知道為什么這么做。 首先看這張架構(gòu)圖:showImg(https://segmentfaul...

    hizengzeng 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<