將hexo從本地部署到服務器

先來看看Hexo是什麼?

Hexo 是一個基於nodejs 的靜態博客網站生成器,做者是來自臺灣的 Tommy Chennode

特色:linux

  • 難以想象的快速 ─ 只要一眨眼靜態文件即生成完成
  • 支持 Markdown
  • 僅需一道指令便可部署到 GitHub Pages 和 Heroku
  • 已移植 Octopress 插件
  • 高擴展性、自訂性
  • 兼容於 Windows, Mac & Linux

總結

  • 高速
  • 靜態
  • 極強的擴展性
  • 易於部署

有興趣能夠看一看個人我的博客:iyingyi.cnnginx

所以Hexo運行方式分爲兩種:git

直接將Hexo部署到服務器上,而後經過反向代理方式對Hexo的預覽進行代理訪問,此方法並不能體現出Hexo的靜態的特色。github

將Hexo部署在本地我的電腦上,而後寫文章生成靜態文章頁面,在經過git推送到GitHubGitee或者是我的服務器上,這樣服務器上存在的只有靜態文件,而這樣也直接將調試環境和生產環境分開,易於使用。web

本文所採用方法爲第二種方法,先將Hexo部署在本地電腦上,再git推送到服務器上數據庫

先將Hexo部署到我的電腦

所需環境:npm

1.Git (git-scm.com)vim

2.Node.js (nodejs.org)windows

3.Hexo

Git安裝

Windows和Mac直接到Git官網下載對應的安裝包進行安裝

Linux (Ubuntu, Debian):sudo apt-get install git-core

Linux (Fedora, Red Hat, CentOS):sudo yum install git-core

安裝完成後可使用git --version查看git版本

$ git --version
git version 2.32.0.windows.1
複製代碼

Node.js安裝

Windows和Mac直接到Git官網下載對應的安裝包進行安裝

Linux經過Nodesource進行安裝,文檔中提供在linux不一樣版本下安裝的命令

如Centos下命令爲:

# root用戶
curl -fsSL https://rpm.nodesource.com/setup_lts.x | bash -

# 非root用戶
curl -fsSL https://rpm.nodesource.com/setup_lts.x | sudo bash -
複製代碼

安裝完成後能夠經過如下命令查看node.js版本:

$ node -v
v14.17.3
#npm爲nodejs的包管理器,安裝nodejs後會自動安裝
$ npm -v
7.20.3
複製代碼

注意:nodejs安裝完成後windows和linux可能出現兩個warning警告,不用管!

Hexo安裝

執行命令:npm install -g hexo-cli隨後會進行Hexo的安裝

linux上推薦使用cnpm進行安裝,cnpm安裝命令爲:

#npm安裝Hexo方式與npm同樣,只是把npm換位cnpm
npm install cnpm -g --registry=https://registry.npm.taobao.org
複製代碼

安裝完成後能夠經過如下命令查看Hexo版本號:

$hexo -v
#如下爲hexo環境以及版本號等...
hexo-cli: 4.3.0
os: win32 10.0.19043
node: 14.17.3
v8: 8.4.371.23-node.67
uv: 1.41.0
zlib: 1.2.11
brotli: 1.0.9
ares: 1.17.1
modules: 83
nghttp2: 1.42.0
napi: 8
llhttp: 2.1.3
openssl: 1.1.1k
cldr: 39.0
icu: 69.1
tz: 2021a
unicode: 13.0
複製代碼

初始化並新建文章

執行如下命令

#cd到目標目錄
cd {你想訪問博客文件的位置}
hexo init {目錄名}
複製代碼

初始化完成後再執行

hexo new 標題
複製代碼

生成一篇文章,再執行hexo s,能夠在localhost:4000進行預覽,這是調試模式

到這裏本地部署hexo就已經完成

將本地生成的靜態文件git到服務器

所需環境:

服務器配置

寶塔面板安裝

寶塔面板官網有詳細的安裝介紹,安裝完成後須要在服務器的安全組裏面(服務器提供商會給提供一個安全組)放行ssh端口22

在寶塔面板裏面安裝好git和nginx

而後逐步執行如下指令:

建立git庫
#建立文件路徑
mkdir /var/repo/
#修改權限
chown -R $USER:$USER /var/repo/
chmod -R 755 /var/repo/
#建立遠程git倉庫,這裏的倉庫名自定義,而後記住後面會用到,例如:bog.git
cd /var/repo
git init --bare {自定義倉庫名name}.git
複製代碼
建立遠程網站目錄

在寶塔面板中新建網站,不須要數據庫,開啓ftp

2021-08-06.png

建立git鉤子(hooks)

能夠本身在寶塔面板中進入/var/repo/{自定義倉庫名}.git/hooks/中建立post-receive文件並編輯輸入內容

也能夠執行如下命令:

vim /var/repo/{自定義倉庫名}.git/hooks/post-receive
複製代碼

進入vim編輯模式,輸入如下代碼:

#!/bin/bash

git --work-tree={新建的網站目錄} --git-dir=/var/repo/{自定義倉庫名}.git checkout -f
複製代碼

而後執行如下命令:

#賦予可執行權限
chmod +x /var/repo/{自定義倉庫名}.git/hooks/post-receive
複製代碼

這裏就已經將遠程git庫和網站目錄配置完成了

本地hexo參數配置

安裝hexo-deployer-git

在本地電腦執行命令

npm install hexo-deployer-git --save
複製代碼
配置_config.yml文件

配置本地hexo中的_config.yml文件,格式以下:

# Deployment
## Docs: https://hexo.io/docs/one-command-deployment
deploy:
  type: git
  repo: root@{服務器ip地址}:/var/repo/{自定義倉庫名}.git
複製代碼

保存退出了,到hexo目錄下執行如下命令:

#生成靜態文件
hexo g
#推送到git,過程當中會要求你輸入服務器密碼
hexo d
複製代碼
相關文章
相關標籤/搜索