摘要:提示,如果需要通過實現服務器自動化部署,推薦使用會更方便一些然后在目錄初始化本地倉庫并提交到這時候上已經有我提交的代碼了。再新建一個文件處理部署相關腳本,內容如下將新增的與兩個文件到服務器。
這篇文章將如何搭建hexo,以及如何通過git webhooks實現遠程vps的自動部署
這篇文章適合的條件:
簡單的用于個人博客、公司博客展示,hexo的定位是靜態博客,要實現動態服務器的功能并不適合
有自己私有的服務器、vps、域名
git倉庫,Github或國內的Coding.net
hexo本地部署流程:先在本機搭建好hexo環境,push到git倉庫,再部署到服務器上。
第一步,安裝hexo命令行工具,這個工具在服務器端也需要執行安裝
npm install hexo-cli -g
第二部,生成一個本地hexo項目
# 創建blog目錄,并初始化hexo項目 hexo init blog cd blog # 安裝hexo依賴,hexo是基于nodejs開發的,npm是nodejs的包管理工具 npm install # 啟動本地服務,打開localhost:4000測試是否成功 hexo server
第三部,新建一篇文章
hexo new "My First Post" # 啟動本地服務,查看效果 hexo server
這樣,在/source/_posts目錄下就生成了了my-first-post.md這樣一個文件,.md是markdown文件的擴展名,我們可以使用自己喜歡的工具去編輯markdown,比如Sublime Text。
這里推薦一個Sublime Text插件,給人家免費推廣了,OmniMarkupPreviewer。
提交到遠程倉庫你得需要一個遠程倉庫托管代碼,可以使用Github或國內的Coding.net,因為我有些項目屬于私有項目,Github開私有項目是需要收費的,所以我選擇的是國內的Coding.net,速度也比較理想。
先在coding上新建一個項目名為hexo,并拷貝倉庫ssh地址(使用ssh需要配置ssh公鑰和私鑰,如果不會配可以google或使用http地址)。
提示,如果需要通過webhooks實現服務器自動化部署,推薦使用ssh會更方便一些
然后在hexo目錄初始化本地倉庫并提交到coding
git init git remote add origin git@git.coding.net:lianer/hexo-blog.git git add . git commit -m "publish" git push origin master
這時候coding上已經有我提交的代碼了。
服務器環境配置登錄你自己的vps服務器,安裝好nodejs,git,nginx,個人服務器還是推薦使用ubuntu,安裝這些工具很容易,具體百度或谷歌。
我在公司搭的hexo,公司服務器使用的是centos,git我是請運維同學幫我安裝的,比較麻煩。
將代碼從遠程倉庫拉下來同樣的服務器也需要配置ssh才能使用ssh地址,否則還是使用http地址吧。
在這里,我直接把項目放在root目錄下了。
mkdir hexo git init git remote add origin git@git.coding.net:lianer/hexo-blog.git git pull origin master安裝hexo模塊
cd ~/hexo npm install hexo-cli -g npm installhexo靜態編譯
hexo g
這一步會在hexo目錄下生成一個public目錄,這里面就是編譯后的靜態文件目錄,
其實這時候直接訪問里面的html文件即可看到完整的效果了,只不過還需要一個服務來運行它。
進入nginx服務配置文件目錄,該目錄下應該已經有一個default.conf,不去管它,另外新建一個配置文件
cd /etc/nginx/conf.d/ vi hexo.conf
在hexo.conf中輸入以下內容并保存,注意細節,不要少分號。
server { listen 80; # 監聽端口 server_name imlianer.com www.imlianer.com; # 你的域名 location / { root ~/hexo; index index.html; } }
重載nginx,使配置生效。
nginx -s reload
然后就可以通過 http://imlianer.com 訪問hexo了。
Git WebHooks 自動化部署是不是覺得每次寫完文章還要登錄服務器去執行一次git pull很麻煩?
ok,git有很多鉤子,可以在倉庫發生變化的時候觸發,類似js中的事件。
WebHooks就是在你本地執行git push的時候,
遠程倉庫(coding)會檢測到倉庫的變化,并發送一個請求到我們配置好的WebHooks。
實現WebHooks自動化部署的推薦條件:
服務器端配置ssh認證
服務器端配置nodejs服務,接收Coding發來的請求
遠程倉庫配置WebHooksCoding WebHooks 配置界面
這張圖的配置的意思是:當倉庫發生push的時候,會發送一個請求到http://imlianer.com/webhooks/...。
為了服務端的簡易處理,這里沒有使用token,而是將url地址當做token,123456就充當了token的角色。
到這,倉庫這邊的配置就完成了,接下來的問題就是服務器如何接收這個請求并重新部署hexo了。
服務器配置響應WebHooks的服務我使用的是nodejs,其它語言也可以。
在本地hexo目錄中新建一個webhooks.js文件,內容如下:
var http = require("http") var exec = require("child_process").exec http.createServer(function (req, res) { // 該路徑與WebHooks中的路徑部分需要完全匹配,實現簡易的授權認證。 if(req.url === "/webhooks/push/123456"){ // 如果url匹配,表示認證通過,則執行 sh ./deploy.sh exec("sh ./deploy.sh") } res.end() }).listen(4002)
這段代碼就能啟動一個nodejs服務,監聽4002端口。
當請求過來的url完全匹配的時候,執行deploy.sh。
再新建一個文件deploy.sh處理部署相關腳本,內容如下:
git pull origin master hexo g
將新增的webhooks.js與deploy.sh兩個文件push到服務器。
然后在服務器中啟動nodejs服務監聽webhooks
node ./webhooks.js
這樣,當你本地提交文章的時候,服務器就會自動部署啦。
如果你使用上面的命令運行nodejs服務,nodejs服務會在前臺運行,
可以使用pm2使nodejs運行在后臺。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/39350.html
摘要:原文地址作為一個天天造的人,必然要經常訪問谷歌等網站,所以前些日子買了自己搭了梯子。今天就跟大家分享一下,如何使用搭建個人博客。創建用戶,建立裸庫,配置。 原文地址:https://www.xksblog.top/use-V... 作為一個天天造BUG的人,必然要經常訪問谷歌等網站,所以前些日子買了VPS自己搭了梯子。但如果只是用VPS來搭梯子那就太浪費了,所以又折騰了一天,把自己之...
原文鏈接 隨著Vateral主題的開發接近了尾聲,在對主題速度優化的時候發現之前用的githubpage問題多多:首先就是因為在國內的原因,訪問速度本身就很慢,曾經有次加載一張16kb的圖標時間耗費了26s!!?其次,在對資源做CDN托管加速時,域名是需要備案的,顯然githubpage也是做不了的;所以果斷舍棄了這個把hexo搭建到了我的阿里云服務器上 總體來說還是比把hexo搭建到github...
摘要:博客的架構先搞明白博客從搭建到自動發布的架構,才能更好的理解我們每一步進行的操作。整個搭建流程第一部分服務器環境搭建,包括安裝配置創建用戶。在裸庫的文件夾中,新建文件。 1. 博客的架構 先搞明白Hexo博客從搭建到自動發布的架構,才能更好的理解我們每一步進行的操作。不然只跟著步驟過了一遍,卻不知道為什么這么做。 首先看這張架構圖:showImg(https://segmentfaul...
閱讀 3221·2021-11-11 16:55
閱讀 2456·2021-10-13 09:39
閱讀 2391·2021-09-13 10:27
閱讀 2154·2019-08-30 15:55
閱讀 3082·2019-08-30 15:54
閱讀 3126·2019-08-29 16:34
閱讀 1819·2019-08-29 12:41
閱讀 1064·2019-08-29 11:33