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