抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

设备参数

服务器

类别 参数
服务商 腾讯云
操作系统 CentOS 7.8 64位
CPU 1核
内存 2GB
公网带宽 1Mbps

电脑

类别 参数
操作系统 macOS Big Sur 11.0.1
SSH软件 Royal TSX v4.3.6

创建 SSH 免密登陆密钥

1
2
3
4
5
6
cd ~/.ssh/
# 若提示目录不存在则输入一下命令创建该目录
mkdir ~/.ssh

ssh-keygen -t rsa -C "自定义备注信息"
# 然后需要敲击3次回车键,分别是密钥命名、密钥密码、再次输入密钥密码,由于最终目的是为了便捷部署网站,都直接回车即可

创建 SSH 免密登陆密钥
在 Finder 按快捷键⇧ + ⌘ + G前往文件夹
输入~/.ssh
前往~/.ssh文件夹
文件夹中 id_rsa 文件为私钥,id_rsa.pub 文件为公钥

服务器配置

安装 git 和 nginx

yum install -y nginx git
安装 git 和 nginx

创建操作系统用户

1
2
3
4
5
#添加一个名为 git 的用户
adduser git

#为 git 用户设置密码
passwd git

创建操作系统用户

给 git 用户配置 sudo 权限

1
2
3
4
5
6
7
8
9
10
11
12
# 将 sudoers 文件的权限修改为可写入
chmod 740 /etc/sudoers

# 在Vim模式下编辑 sudoers 文件
vim /etc/sudoers

# 找到root ALL=(ALL) ALL,在其下方加入 git 用户的权限
# 注意大小写!注意大小写!注意大小写!
git ALL=(ALL) ALL

# 将 sudoers 文件的权限修改为只可读
chmod 400 /etc/sudoers

给 git 用户配置 sudo 权限

给 git 用户添加 SSH 密钥

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 切换为 git 用户
su - git

mkdir .ssh && chmod 700 .ssh
touch .ssh/authorized_keys && chmod 600 .ssh/authorized_keys

# 创建 git 用户的 ~/.ssh 文件夹并修改其权限
mkdir -p ~/.ssh && chmod 700 ~/.ssh

# 创建 authorized_keys 文件并修改其权限
touch ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys

# 编辑 authorized_keys 文件
vim ~/.ssh/authorized_keys
# 将公钥 id_rsa.pub 中的内容粘贴到 authorized_keys 文件内

创建 git 仓库并使用 Git Hooks 实现自动部署

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# 创建 git 仓库目录
sudo mkdir -p /var/repo

# 创建 Hexo 博客目录
sudo mkdir -p /var/www/hexo

# 进入仓库文件夹
cd /var/repo

# 创建名为 blog 的仓库
sudo git init --bare blog.git

# 编辑 post-update 文件
sudo vim /var/repo/blog.git/hooks/post-update
# Git Hooks 是标准的脚本,所以要在第一行告诉 git 用什么解释器,然后为了要让 git 把最新版本的代码仓库解包到 Web 服务器的根目录下,所以需要把工作目录设置为 Hexo 博客目录,把 git 目录设置为仓库目录
# 将以下内容粘贴到 post-update 文件内即可

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


# 进入 Git Hooks 文件夹
cd /var/repo/blog.git/hooks/

# 改变仓库目录以及其子目录下的所有文件的拥有者和群组
sudo chown -R git:git /var/repo/

# 改变博客目录以及其子目录下的所有文件的拥有者和群组
sudo chown -R git:git /var/www/hexo

# 赋予 post-update 可执行权限
sudo chmod +x post-update

限制 git 用户 SSH 登录服务器

git 账户通常仅用于克隆或推送数据到 git 仓库中,为了服务器的安全,建议限制其权限使其不可通过ssh git@xxx.xxx.xxx.xxx登录,亦不可通过su git切换到 git 用户,仅可用 SSH 连接推送和获取 git 仓库。具体方法为将 git 用户默认的 Shell 替换成 git-shell 。

1
2
3
4
5
6
7
8
9
# 切换回root用户
su -

# 编辑 passwd 文件
vim /etc/passwd
# 将
# git:x:1000:1000::/home/git:/bin/bash
# 修改为
# git:x:1000:1000::/home/git:/usr/bin/git-shell/

配置 nginx

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

# 编辑 nginx 配置文件
vim /etc/nginx/nginx.conf

# 修改 Server 部分
## Server 部分需要添加在 http 下
server {
listen 80 default_server;
listen [::] default_server;
server_name 域名;
root /var/www/hexo;
}

# 检测 nginx 配置文件语法
nginx -t
# 若提示
# nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
# nginx: configuration file /etc/nginx/nginx.conf test is successful
# 则没问题
# 若提示类似
# nginx: [emerg] a duplicate default server for 0.0.0.0:80 in /etc/nginx/nginx.conf:39
# nginx: configuration file /etc/nginx/nginx.conf test failed
# 则需要重新检查 nginx.conf 是否有误

# 若配置文件无误且 nginx 未启动则启动 nginx
nginx -c /etc/nginx/nginx.conf

# 若 nginx 已启动则重启 nginx
nginx -s reload

本地电脑配置

安装 git

安装 Command Line Tools

xcode-select --install!

安装命令行开发者工具

检查 git 版本号

1
2
git --version
# git version 2.24.3 ( Git-128)

安装 Node.js

注意

切勿使用安装包安装 Node.js ,具体安装教程及解释可参考macOS Big Sur 安装 Node.js

从 nvm 安装 Node.js

1
2
3
4
5
6
7
8
9
# <version> 替换为 Node.js 最新版本号
nvm install v<version>
# nvm install v15.3.0

# 检查 Node.js 是否安装成功,若提示版本号则成功
node -v

# 检查 npm 是否安装成功,若提示版本号则成功
npm -v

安装 Hexo 及相关插件

1
npm install hexo-cli hexo-server hexo-deployer-git -g

安装 Hexo 及相关插件

创建 Hexo 博客文件

自行创建好 Hexo 博客文件本地目录

1
2
3
4
5
6
# 进入 Hexo 博客文件目录
# <dir> 替换为目录路径
cd <dir>

# Hexo 博客文件初始化
hexo init <dir>

Hexo 配置

1
2
3
4
5
6
7
8
9
10
11
12
13
# 安装部署插件在 Hexo 目录下
npm install hexo-deployer-git --save

# 修改 Hexo 配置文件
vim _config.yml
# 也可以用 VS Code 、Atom 等文本编辑器编辑 Hexo 目录下的 _config.yml 文件

# 配置 deploy 部分
# xxx.xxx.xxx.xxx 替换为服务器 IP 地址
deploy:
type: git
repo: git@xxx.xxx.xxx.xxx:/var/repo/blog.git
branch: master

配置 Hexo deploy

将本地 Hexo 部署到服务器

1
2
3
4
5
6
7
8
# 清除缓存
hexo clean

# 生成静态页面
hexo generate

# 将本地静态页面目录部署到云服务器
hexo delopy

在浏览器输入域名打开网站即可预览效果

预览效果

参考

将Hexo部署到自己的服务器上——StaryJie
利用GitHub从零开始搭建一个博客———StaryJie
通过Git将Hexo博客部署到服务器——ourongxing

评论