原文鏈接
隨著Vateral主題的開發(fā)接近了尾聲,在對主題速度優(yōu)化的時(shí)候發(fā)現(xiàn)之前用的githubpage問題多多:首先就是因?yàn)樵趪鴥?nèi)的原因,訪問速度本身就很慢,曾經(jīng)有次加載一張16kb的圖標(biāo)時(shí)間耗費(fèi)了26s?。??其次,在對資源做CDN托管加速時(shí),域名是需要備案的,顯然githubpage也是做不了的;所以果斷舍棄了這個(gè)把hexo搭建到了我的阿里云服務(wù)器上
總體來說還是比把hexo搭建到github上要復(fù)雜一些的,期間遇到了不少坑,也參考了很多資料,這里詳細(xì)的總結(jié)一下具體的步驟。
hexo的架構(gòu)首先我們要理解hexo是如何實(shí)現(xiàn)靜態(tài)博客通過服務(wù)器訪問的
搭建流程通過上圖我們可以知道,整個(gè)流程就是在本地通過hexo g 渲染博客的靜態(tài)文件,然后通過hexo d 把靜態(tài)文件 push到服務(wù)器上我們自己創(chuàng)建的git倉庫,服務(wù)器再通過 git-hooks 同步網(wǎng)站根目錄,這樣就可以訪問了
第一步: 安裝node.js以及本地Hexo初始化
第二步: 服務(wù)器環(huán)境搭建,包括安裝 Git 、Nginx配置 、創(chuàng)建 git 用戶
第三步: 使用Git自動化部署發(fā)布博客
$ brew install node初始化Hexo博客
首先創(chuàng)建 你的Hexo 目錄
$ mkdir "your hexo dir name"http://創(chuàng)建一個(gè)自定義的hexo目錄,比如我就在用戶根目錄創(chuàng)建了一個(gè)myhexo文件夾(macOS) $ cd "your hexo dir name"http://進(jìn)入到剛剛創(chuàng)建的目錄
然后安裝 hexo-cli,安裝hexo-cli 需要 root 權(quán)限,使用 sudo 運(yùn)行
sudo npm install -g hexo-cli
初始化該文件夾
hexo init
安裝hexo的擴(kuò)展插件
npm install
等執(zhí)行成功以后安裝兩個(gè)插件, hexo-deployer-git 和 hexo-server ,這倆插件的作用分別是使用Git自動部署,和本地簡單的服務(wù)器。
npm install hexo-deployer-git --save npm install hero-server --save
以及一些其他插件(*非必選)
npm install hexo-admin --save npm install hexo-generator-archive --save npm install hexo-generator-feed --save npm install hexo-generator-search --save npm install hexo-generator-tag --save npm install hexo-generator-sitemap --save
到這里hexo的本地搭建已經(jīng)基本結(jié)束了,快來新建一個(gè)文章并在本地啟動吧~
生成自己的第一篇文章使用 hexo new <文章名稱> 來新建文章,該命令會成成一個(gè) .md文件放置在 sources/_posts文件夾。(*在hexo目錄下執(zhí)行命令)
hexo new "hello Hexo"
執(zhí)行該命令后在hexo目錄下的 sources/_posts文件夾里生成了剛剛創(chuàng)建的hello
Hexo.md的markdown文件,然后就可以通過本地或者在線的markdown編輯器就可以創(chuàng)作自己的博客了~
編輯完畢以后, 使用hexo g將 .md文件渲染成靜態(tài)文件,然后啟動hexo-server
hexo g hexo server
打開 http://localhost:4000 如果看到 hexo 的初始頁面證明安裝成功。
生成ssh公鑰密鑰$ cd ~/.ssh $ ssh-keygen
它先要求你確認(rèn)保存公鑰的位置(.ssh/id_rsa),然后它會讓你重復(fù)一個(gè)密碼兩次,如果不想在使用公鑰的時(shí)候輸入密碼,可以留空;具體生產(chǎn)方法可以參考這里
這個(gè)公鑰將會復(fù)制到服務(wù)器的證書中,添加公鑰之后可以防止每次 push 都輸入密碼。
至此,本地環(huán)境的搭建已經(jīng)基本結(jié)束。
服務(wù)器環(huán)境搭建因?yàn)槲覀兪悄胣ginx做 Web 服務(wù)器,所以我們需要安裝部署好nginx,如果沒有安裝,推薦使用LNMP一鍵安裝包
安裝node.js我們可以專門為hexo創(chuàng)建一個(gè)部署目錄,比如我創(chuàng)建了/home/www/hexo文件夾,并把nginx的配置文件nginx.conf中的部署目錄改為/home/www/hexo,配置文件一般在/usr/local/nginx/conf里;同樣可以使用默認(rèn)目錄,nginx的默認(rèn)目錄為/var/www/html,如果使用LNMP一鍵安裝包,則默認(rèn)的部署目錄為/home/wwwroot/default
$ curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash - $ apt-get install -y nodejs
安裝git如果遇到問題可以參考Node.js部署到阿里云服務(wù)器里邊有更詳細(xì)的關(guān)于node.js的步驟
$ apt-get install git創(chuàng)建一個(gè)git用戶
$ sudo adduser git
添加證書登錄雖說現(xiàn)在的倉庫只有我們自己在使用,新建一個(gè) git 用戶顯得不是很有必要,但是為了安全起見,還是建議使用多帶帶的 git 用戶來專門運(yùn)行
git 服務(wù)
把剛在在本地創(chuàng)建或者已經(jīng)擁有的公鑰,也就是 ~/.ssh/id_rsa.pub 文件里的內(nèi)容添加到服務(wù)器的 /home/git/.ssh/authorized_keys 文件中,如上所說,添加公鑰之后可以防止每次 push 都輸入密碼。(*可以直接執(zhí)行cat ~/.ssh/id_rsa.pub | pbcopy 復(fù)制)
初始化 Git 倉庫可以將git倉庫放到自定義位置,我是將其放在 /var/repo/blog.git 目錄下的
$ sudo mkdir /var/repo $ cd /var/repo $ sudo git init --bare blog.git
使用 --bare 參數(shù),Git 就會創(chuàng)建一個(gè)裸倉庫,裸倉庫沒有工作區(qū),我們不會在裸倉庫上進(jìn)行操作,它只為共享而存在。
配置 git hooks我們這里要使用的是 post-receive 的 hook,這個(gè) hook 會在整個(gè) git 操作過程完結(jié)以后被運(yùn)行,關(guān)于 hooks
的詳情內(nèi)容可以參考這里。
在 blog.git/hooks 目錄下新建一個(gè) post-receive 文件
$ cd /var/repo/blog.git/hooks
編輯這個(gè)文件
$ vim post-receive
在 post-receive 文件中寫入如下內(nèi)容
#!/bin/sh git --work-tree=/home/www/hexo --git-dir=/var/repo/blog.git checkout -f
注意,/home/www/hexo 要換成你自己的部署目錄,正如上文所說,我是的配置目錄是/home/www/hexo。/var/repo/blog.git是git倉庫的位置。上面那句 git 命令可以在我們每次 push 完之后,把部署目錄更新到博客的最新生成狀態(tài)。這樣便可以完成達(dá)到自動部署的目的了。
設(shè)置這個(gè)文件的可執(zhí)行權(quán)限
chmod +x post-receive改變 blog.git 目錄的擁有者為 git 用戶
$ sudo chown -R git:git blog.git禁用 git 用戶的 shell 登錄權(quán)限
出于安全考慮,我們要讓 git 用戶不能通過 shell 登錄??梢跃庉?/etc/passwd 來實(shí)現(xiàn)
vim /etc/passwd
將
git:x:1001:1001:,,,:/home/git:/bin/bash
改成
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
這樣 git 用戶可以通過 ssh 正常使用 git,但是無法登錄 sehll。
至此,服務(wù)器環(huán)境的搭建已經(jīng)基本結(jié)束。
配置本地_config.yml文件,完成自動化部署修改 hexo 目錄下的 _config.yml 找到 deploy, 修改為:
deploy: type: git repo: [email protected]:/var/repo/blog.git branch: master
repo 的地址為你自己的地址以及 git 倉庫目錄
至此,我們的 hexo 自動部署已經(jīng)全部配置好了
開始使用新建文章:
$ hexo new "post name"
生成 & 部署:
$ hexo clean && hexo g && hexo d參考
在 VPS 上搭建 Hexo 博客,使用 Git 部署
阿里云VPS搭建自己的的Hexo博客
使用 Git Hook 自動部署 Hexo 到個(gè)人 VPS
使用git hooks進(jìn)行hexo博客自動化部署
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/50768.html
摘要:設(shè)置什么是本用于介紹托管在的項(xiàng)目,不過,由于他的空間免費(fèi)穩(wěn)定,用來做搭建一個(gè)博客再好不過了。你可以通過來訪問你的個(gè)人主頁。執(zhí)行過程中可能需要讓你輸入賬戶的用戶名及密碼,按照提示操作即可。推薦使用騰訊公益。 系統(tǒng)環(huán)境配置 要使用Hexo,需要在你的系統(tǒng)中支持Nodejs以及Git,如果還沒有,那就開始安裝吧! 安裝Node.js 下載Node.js參考地址:安裝Node.js 安裝Git...
摘要:后來網(wǎng)上看到了很多和搭建的靜態(tài)博客,由于編輯器的實(shí)用性,及,等代碼托管平臺的免費(fèi)特點(diǎn),讓很多人都轉(zhuǎn)向了和。于是我也花了兩三天的時(shí)間來研究搭建了自己的博客。 以前的博客(blog.duweibin.cn)是在學(xué)習(xí)thinkphp的時(shí)候自己做的一個(gè)小項(xiàng)目,模板也是網(wǎng)上找的,后臺是自己用thinkphp框架寫的,上一個(gè)博客搭建過程中讓自己學(xué)會了thinkphp對MVC操作,(M層還沒具體用過...
摘要:提示,如果需要通過實(shí)現(xiàn)服務(wù)器自動化部署,推薦使用會更方便一些然后在目錄初始化本地倉庫并提交到這時(shí)候上已經(jīng)有我提交的代碼了。再新建一個(gè)文件處理部署相關(guān)腳本,內(nèi)容如下將新增的與兩個(gè)文件到服務(wù)器。 這篇文章將如何搭建hexo,以及如何通過git webhooks實(shí)現(xiàn)遠(yuǎn)程vps的自動部署 這篇文章適合的條件: 簡單的用于個(gè)人博客、公司博客展示,hexo的定位是靜態(tài)博客,要實(shí)現(xiàn)動態(tài)服務(wù)器的功能...
閱讀 3966·2021-11-24 09:38
閱讀 1439·2021-11-19 09:40
閱讀 2785·2021-11-18 10:02
閱讀 3707·2021-11-09 09:46
閱讀 1780·2021-09-22 15:27
閱讀 3121·2019-08-29 15:24
閱讀 1009·2019-08-29 12:40
閱讀 1693·2019-08-28 18:24