VPS 部署系统为 Ubuntu 20.04
# 本地环境
# Git
Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持
下载 Git 安装并配置 Git 的环境:下载链接;Git 基本操作
右键打开 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 配置
- 输入命令,安装 git
apt update | |
apt install git |
- 创建 VPS 的
git
帐户,按提示创建密码
adduser git |
- 添加
git
账户权限
chmod 740 /etc/sudoers | |
vim /etc/sudoers |
- 执行最后一条命令后,点击键盘 i 键进入编辑模式,找到图示位置代码
在下面加入一行
git ALL=(ALL) ALL |
按 Esc 键并输入 :wq
(含义:保存后退出)
- 回改权限
chmod 400 /etc/sudoers |
- 切换至
git
账户
su git |
创建 ~/.ssh
和 ~/.ssh/authorized_keys
文件
mkdir ~/.ssh | |
vim ~/.ssh/authorized_keys |
点击键盘 i 键进入编辑模式,粘贴本地电脑生成的 SSH 公钥
粘贴后,按 Esc 键并输入 :wq
保存后退出
赋予权限
chmod 600 /home/git/.ssh/authorized_keys | |
chmod 700 /home/git/.ssh |
- 切换到本地电脑
git bash here
中测试是否免密登陆成功
ssh -v git@服务器公网IP |
成功后切换到 VPS 继续操作
- 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 |
- 创建 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
如果 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用于搜索功能 |
部署成功