優點: 快速高效 支持markdown 佈局自定義簡單,無廣告 部署簡單 因為想開始寫博客,但又找不到好的博客平臺,平時都看博客園和開源中國看博客文章,但博客園的那個皮膚是真有點難受,所以就想自己打個博客平臺用著,然後blog的話還是發表到博客園,博客園叫 姚剛,有興趣的關註一下,以後會出一些關於運 ...
優點:
- 快速高效
- 支持markdown
- 佈局自定義簡單,無廣告
部署簡單
因為想開始寫博客,但又找不到好的博客平臺,平時都看博客園和開源中國看博客文章,但博客園的那個皮膚是真有點難受,所以就想自己打個博客平臺用著,然後blog的話還是發表到博客園,博客園叫 姚剛,有興趣的關註一下,以後會出一些關於運維和oracle的文章
本次環境:
個人筆記本+centos6.9 + node.js v8.9.4 + theme(NexT.Mist v5.1.4)+ githup + gitment
因為第一次開始搭建,主要記錄一下操作步驟,可能對原理和其他分析不太全面,請原諒,有不當的或錯誤的見解希望指正。反正博客剛開始也沒有訪問量,所以就不打算購買功能變數名稱,將個人博客部署到githup就好。
正文
安裝git
先安裝git 或者node.js都行
#直接yum進行安裝、
yum -y install git-core
#初始化
git config --global user.name "yao gang"
git config --global user.email "[email protected]"
安裝node.js
#下載適合自己平臺的進行解壓:https://nodejs.org/zh-cn/download/
#我裝了minimal版,下載node.js源碼進行編譯安裝,開始報錯,沒有gcc g++
yum -y install gcc gcc-c++ #註意是 gcc-c++ 而不是 g++
#開始編譯
./configure --prefix=/usr/local/node.js.8.9.4
#報警告 WARNING: C++ compiler too old, need g++ 4.9.2 or clang++ 3.4 (CXX=g++)
#升級c++編譯器gcc
#下載源碼包進行編譯安裝 https://ftp.gnu.org/gnu/gcc/
#我下載 4.9.2,因為我怕版本太高其他依賴又可能出問題
wget http://gcc.skazkaforyou.com/releases/gcc-4.9.2/gcc-4.9.2.tar.gz;
tar -zxvf gcc-4.9.2.tar.gz
cd gcc-4.9.2
mkdir build
cd build
yum install gmp-devel mpfr-devel libmpc-devel
../configure --prefix=/usr
make && make install # 如果期間還出現問題,小的可以忽略,但需要安裝成功,否則自行百度解決
#返回node.js.8.9.4目錄下
./configure --prefix=/usr/local/node8.9.4
make && make install #直到安裝成功
安裝hexo
# 編輯 /etc/profile (使用vim)
vim /etc/profile
# 在底部添加 PATH 變數
export PATH=$PATH:/usr/local/node8.9.4/bin
# 保存退出,先按exit鍵,再按shift+:
wq
# 最後保存並使其生效即可
source /etc/profile
# 執行命令有輸出即代表安裝和環境配置成功
node --version # v8.9.4
配置hexo
# 創建目錄
mkdir blog
# 切換目錄
cd blog
# 安裝 Hexo
npm install -g hexo-cli
# 查看
執行命令: hexo version # 有輸出:
hexo-cli: 1.0.4
os: Linux 2.6.32-696.el6.x86_64 linux x64
http_parser: 2.7.0
node: 8.9.4
v8: 6.1.534.50
uv: 1.15.0
zlib: 1.2.11
ares: 1.10.1-DEV
modules: 57
nghttp2: 1.25.0
openssl: 1.0.2n
icu: 59.1
unicode: 9.0
cldr: 31.0.1
tz: 2017b
#安裝hexo 插件
npm install hexo-generator-index --save
npm install hexo-generator-archive --save
npm install hexo-generator-category --save
npm install hexo-generator-tag --save
npm install hexo-server --save
npm install hexo-deployer-git --save
npm install hexo-deployer-heroku --save
npm install hexo-deployer-rsync --save
npm install hexo-deployer-openshift --save
npm install hexo-renderer-marked --save
npm install hexo-renderer-stylus --save
npm install hexo-generator-feed --save
npm install hexo-generator-sitemap --save
後面部署會用到 hexo-deployer-git --save,其他的好像不安裝也行,我當時使用簡單,並沒有用到。
# 初始化 Hexo
hexo init
ls # 生成hexo工程: _config.yml db.json node_modules package.json package-lock.json public scaffolds source themes
# _config.yml hexo的主要配置文件
# db.json hexo的文件存儲,以後的博客文章文件應該就是存儲在這裡
# node_modules node的模塊
# package.json hexo的插件
# package-lock.json node的相關依賴
# public 後面部署就是部署這裡的文件
# scaffolds 模板文件,可以編譯下麵的模板供後續使用,post、page 和 draft,預設是post
# source 使用hexo命令寫作的博客頁面都是在這下麵,可以手動拷貝到此路勁下指定位置
# themes hexo的主題配置文件
這裡介紹幾個hexo命令
hexo init # 在當前路勁初始化hexo博客框架工程
hexo generate/hexo g # 後面是簡寫,講hexo的 .md 博客文件通過 node.js 渲染生成靜態頁面
hexo deploy/hexo d # 將生成到public下麵的靜態文件部署到xx/blog/_config.yml 指定的地方,待會我會配置為githup的一個用戶名倉庫,省的購買功能變數名稱,需要安裝git部署插件
hexo server/hexo s # 啟動hexo伺服器,訪問入口http://localhost:4000(註意防火牆)
hexo clean # 刪除上面的db.json數據存儲文件
hexo d -g # 先生成,接著部署到制定位置
hexo s -g # 先生成,接著在本地啟動伺服器
hexo new "我的hexo博客文章1" # 這就是博客的文章內容
hexo new page "測試頁面1" # hexo new page "categories" hexo new page "categories"(主要用到這2個頁面,當然你可以在豐富一些,這兩個頁面主要是用來做博客菜單按鈕的跳轉頁面使用的)
這部分有點雜亂,但也是為了給新手說明一下配置文件,也可以看官網文檔 https://hexo.io/zh-cn/docs/
上面我們初始化以後,執行 hexo s -g 會在public裡面按預設的post佈局生成靜態的html、css、js等文件,訪問 localhost:4000,即可看到原生最簡單的hexo主頁了。ctrol + c關閉伺服器。
到這裡,我們的hexo伺服器已經基本完成,是不是很簡單呢?如果你購買了功能變數名稱的話,再設置一下喜歡的主題,就完成了。
配置githup
由於我的博客沒有人氣,所以捨不得買功能變數名稱,就把它部署到github,使用它的用戶功能變數名稱吧,雖然在國外,其實速度也還好啦。你可以點擊我的博客試試,可能你要FQ才能訪問
# 首先,需要註冊github,然後創建倉庫,倉庫名需要 重點 註意一下: 用戶名 + .github.io
# 例子:我的倉庫名為: hd-yaogang.github.io 我的用戶名是 :hd-yaogang
# 以後你的博客功能變數名稱就是 xxx.github.io,我的就是 hd-yaogang.github.io
#設置hexo所在伺服器可以使用git免密ssh部署到 github
#在hexo伺服器生成rsa免密私鑰和公鑰
ssh-keygen -t rsa # 一直回車即可,然後執行命令
cat /root/.ssh/id_rsa.pub # 將輸出的ssh-rsa到結束的一段內容,將這段內容保存到github
點進進入github倉庫,再依次點擊 settings-->Deploy keys-->add deploy key,然後隨意設置key名字,將 /root/.ssh/id_rsa.pub 的內容粘貼到裡面,點擊保存完成即可。
部署hexo
# 首先測試一下git,執行命令
mkdir git_test
cd git_test
git clone git@[email protected]:hd-yaogang/hd-yaogang.github.io.git
預設會克隆主分支master,雖然是空的目錄,但是也能驗證git是否免密登錄了
# 編輯hexo主要配置文件
[root@yg blog]# vim _config.yml # 註意你所在位置
# 找到下麵,模仿著修改一下,註意type是git,註意:後面 有空格,註意配置文件的屬性顏色能提示你對不對
deploy:
type: git
repo: [email protected]:hd-yaogang/hd-yaogang.github.io.git
branch: master
message: 'yg-blog 站點更新:{{now("YYYY-MM-DD HH/mm/ss")}}'
# 執行命令
hexo new “我的hexo 測試博客1”
hexo s -g # 訪問http://localhost:4000
# 然後部署到git
hexo d -g # 訪問 https://hd-yaogang.github.io ,已經顯示博客了
配置hexo theme
[root@yg blog]# git clone --branch v5.1.2 https://github.com/iissnan/hexo-theme-next themes/next
# 下載next主題,也可以自己下載其他喜歡的,放到theme下麵即可,這主題不錯,後續根據自己需要再改一些
# 啟用next主題
[root@yg blog]# vim _config.yml # 找到theme編輯為: theme: next
# 重新部署
hexo d -g # 刷新git的博客功能變數名稱,多刷幾次,可能有點慢,主題已經改變的很簡潔。
主題的細節設置參考,很詳細了:
http://theme-next.iissnan.com/theme-settings.html
http://www.jeyzhang.com/next-theme-personal-settings.html
http://shenzekun.cn/hexo%E7%9A%84next%E4%B8%BB%E9%A2%98%E4%B8%AA%E6%80%A7%E5%8C%96%E9%85%8D%E7%BD%AE%E6%95%99%E7%A8%8B.html
http://michael728.github.io/2015/11/30/hexo-next-optimize/
配置gitment
hexo有很多評論插件,當時也沒多研究,就直接上了gitment,可能看的教程簡單吧,哈哈哈,但是他評論時候需要登錄githup,而且剛開始部署時,這個插件時有時無,有時你刷一下博客評論就不見了。樣式的話還不錯,可以看我博客評論的樣子 https://hd-yaogang.github.io
首先到github登錄,然後依次點擊-->賬戶-->settings-->Developer settings-->New Aouth App,名字叫 Gitment ,homeURL和AuthorizationURL都填寫你的功能變數名稱:https://hd-yaogang.github.io,後面會生成 client ID和 Client Secret,需要配置到hexo的主題配置文件中
然後創建一個空的倉庫,名字是:gitment-comments
然後編輯主題配置文件:# 修改相應的,其餘的和空著的不用管
gitment:
enable: true
mint: true
count: true
lazy: false
cleanly: false
language: zh-Hans # 這是指定插件為中文
github_user: hd-yaogang # 這是github用戶名
github_repo: gitment-comments # 這是空的倉庫名,用來存儲評論內容
client_id: cc592528b859ff59a848 # 這是創建app時的id
client_secret: 80fe54cd8f5f7d58997cc268e376e1552c7020c7 # 這是創建app時的秘鑰
proxy_gateway:
redirect_protocol:
# 再次部署
hexo d -g
結語
由於每個人能力與想法、環境各都不同,所以可能嫌我寫的差,寫的啰嗦,寫的不好
但是慢慢來,希望有錯誤的話幫忙指出,謝謝!