VPS 部署系统为 Ubuntu 20.04

# 本地环境

# Git

Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持

下载 Git 安装并配置 Git 的环境:下载链接Git 基本操作

gitpath

右键打开 Git Bash Here 就可以使用啦

# node.js

node.js 下载链接

有两个版本:
LTS 代表 “Long Term Support(长期支持)”
Current 代表最新发布的版本(每 6 个月一次的)

# 博客框架 Hexo

Hexo 是一个快速、简单且功能强大的博客框架。用 Markdown(或其他标记语言)写帖子,Hexo 会在几秒钟内生成带有漂亮主题的静态文件。

Hexo 特性:

  • 运行效果极佳,成本低
  • 多平台:本地、云、PC、移动端适配好
  • 支持多种 CDN 服务
  • 各大搜索引擎对网站的收录及权重有较大优势

# 安装

桌面右击,打开 git bash here 输入命令安装(默认位置即可,方面后续配置,不建议修改)

npm install -g hexo-cli

执行完后关闭窗口就行,此时本地已经有了 hexo 的环境。

# 初始化

在本地任意位置(但要记住路径)方便起见建议直接在除 C 盘的任意盘符下的跟目录新建,命名任意,比如在 D 盘新建的 hexo-blog 文件夹,在该文件夹下打开 git bash here 输入命令:

hexo init

可能会遇到 git clone failed 这个错误,不要慌张,是从 GitHub 克隆时网络原因,多试几次就好。

成功后根文件目录下多了这些文件,简单介绍下 hexo 的文件结构:

  • public 最终所见网页的所有内容
  • node_modules 插件以及 hexo 所需 node.js 模块
  • _config.yml 站点配置文件,设定一些公开信息等
  • package.json 应用程序信息,配置 hexo 运行所需 js 包
  • scaffolds 模板文件夹,新建文章,会默认包含对应模板内容
  • themes 存放主题文件,hexo 根据主题生成静态网页(速度贼快)
  • source 用于存放用户资源(除 posts 文件夹,其余命名方式为 “+ 文件名” 的文件被忽略)

日常写文的操作都在 source/_post

在 VSCode 中打开根目录 hexo-blog , 打开终端 Terminal 并输入命令

hexo s

点击链接 http://localhost:4000/ 本地预览,默认是 Hexo 内置的 landscape 主题。

# Hexo 主题

官方主题库

本博客使用的是 Shoka 主题,具体安装配置:点击直达

Hexo 常用命令:

hexo clean //执行此命令后继续下一条
hexo g //生成博客目录
hexo s //本地预览
hexo d //部署项目
hexo algolia //数据上传Algolia用于检索

# VPS 托管

# DNS 解析

添加博客域名 A 记录指向 VPS 的 IP 地址,推荐 Cloudflare

# VPS Git 配置

  1. 输入命令,安装 git
apt update
apt install git
  1. 创建 VPS 的 git 帐户,按提示创建密码
adduser git
  1. 添加 git 账户权限
chmod 740 /etc/sudoers
vim /etc/sudoers
  1. 执行最后一条命令后,点击键盘 i 键进入编辑模式,找到图示位置代码

gitvps

在下面加入一行

git     ALL=(ALL)     ALL

Esc 键并输入 :wq (含义:保存后退出)

  1. 回改权限
chmod 400 /etc/sudoers
  1. 切换至 git 账户
su git

创建 ~/.ssh~/.ssh/authorized_keys 文件

mkdir ~/.ssh
vim ~/.ssh/authorized_keys

点击键盘 i 键进入编辑模式,粘贴本地电脑生成的 SSH 公钥

sshkey

粘贴后,按 Esc 键并输入 :wq 保存后退出

赋予权限

chmod 600 /home/git/.ssh/authorized_keys
chmod 700 /home/git/.ssh
  1. 切换到本地电脑 git bash here 中测试是否免密登陆成功
ssh -v git@服务器公网IP

成功后切换到 VPS 继续操作

  1. VPS 中创建仓库并完成配置

切换到 root 账户

su root

创建 repo 仓库目录(如果没有 /www 文件夹先创建 /www 文件夹)

mkdir /www/repo

赋予权限

chown -R git:git /www/repo
chmod -R 755 /www/repo

建立网站根目录 hexo

mkdir /www/hexo

赋予权限

chown -R git:git /www/hexo
chmod -R 755 /www/hexo

新建空白的 git 仓库并初始化

cd /www/repo
git init --bare hexo.git
  1. 创建 Git 钩子,用于自动部署
vim /www/repo/hexo.git/hooks/post-receive

同上,进入编辑模式,粘贴下面代码并保存退出

#!/bin/bash
git --work-tree=/www/hexo --git-dir=/www/repo/hexo.git checkout -f

修改权限

chown -R git:git /www/repo/hexo.git/hooks/post-receive
chmod +x /www/repo/hexo.git/hooks/post-receive

仓库建立完毕

# 安装 Nginx 并配置

详细过程见:Nginx 的安装配置及命令

# Hexo 配置修改

进入本地博客根目录,修改 _config.yml 文件部署 deploy 参数,以及 url

deploy

如果 VPS 的 SSH 端口更改过不是默认的 22,在本地 C:\Users\User\.ssh 目录下添加映射 config 文件

Host myvps
    HostName YOUR_VPS_IP
    User git
    Port 2222

打开 SSH 连接工具,连接 VPS 给予权限

chown -R git:git /www/repo/
chown -R git:git /www/hexo/

本地根目录下打开 git bash here , 或在 VSCode 终端执行命令

hexo clean //清除缓存
hexo d -g //快速部署
hexo algolia //数据上传Algolia用于搜索功能

部署成功

更新于