0%

my first post

这是此博客的第一条帖子,在此以示纪念

不知道写什么,就写点关于本人是如何制作这个博客的吧

安装 hexo

1
npm install -g hexo-cli

安装完成后自己找个地方放这个博客,然后初始化一个博客项目

1
2
3
4
5
6
7
8
// 初始化项目
hexo init myblog

// 进入项目文件夹
cd myblog

// 加载所需的插件文件
npm install

本地运行项目

1
hexo server

此时在本地打开浏览器,通过 http://localhost:4000/ 就可访问基于 Hexo 的个人博客主页了

部署博客至服务器

购买服务器、域名等操作就忽略了(不需要域名也可以)

在服务器上安装 git(这里使用的是 centos7 操作系统)

1
yum install git

创建 Git 用户

为了实现博客的自动部署,我们后面要使用公钥免密登录服务器。

为了安全起见,最好不要使用 root 用户免密登录。

因此,我们要创建一个新的 git 用户,用于远程公钥免密登录服务器。

1
2
3
4
5
6
7
8
// 创建用户
adduser git

// 修改 git 用户的权限
chmod 740 /etc/sudoers

// 编辑文件
vi /etc/sudoers

vim 使用方法👉 点我

找到 root ALL=(ALL) ALL,在下面添加一行 git ALL=(ALL) ALL

1
2
3
4
5
// 保存退出后撤销权限
chmod 400 /etc/sudoers

// 设置 git 用户的密码
sudo passwd git

这样就可以使用 git 用户远程登录服务器了

给 Git 用户配置 ssh 免密公钥登录

该步骤是基于 Hexo 搭建个人博客比较关键的步骤。

既需要在本地计算机上操作,也需要在服务器上进行操作

使用 git 用户免密公钥登录服务器的原理是:在本地计算机生成一个公钥文件和一个秘钥文件(类似于一个钥匙配一把锁),然后使用 FTP 工具将公钥文件上传到阿里云服务器,并公钥安装到 authorized_keys 列表中去(即:将公钥文件的内容拷贝到 authorized_keys 文件中去)。这样本地计算机便可以通过 ssh 方式免密连接我们的服务器了

1.在服务器端将登陆用户切换到 git 用户,然后在~目录(用户家目录)下创建 .ssh 文件夹,用来存放公钥

1
2
3
4
5
6
7
8
// 切换用户
su git

// 进入 git 用户的家目录
cd ~

// 创建文件夹
mkdir .ssh

2.在本地生成公钥/私钥对
在本地计算机桌面右键打开 GitBash

1
2
3
cd ~
cd .ssh
ssh-keygen

接下来,碰见系统提示就直接回车键。此时便会在本地计算机的用户家目录下自动生成 .ssh 文件夹(. 开头的文件都是隐藏的),并在其中创建两个文件,分别为:id_rsa(私钥)和 id_rsa.pub(公钥)

3.在本地计算机上给私钥设置权限

1
2
chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_rsa

4.上传 id_rsa.pub(公钥)

下载并安装 FTP 工具

我用的是 xftp

把生成的 id_rsa.pub(公钥)上传到服务器的 ~/.ssh 目录下

上传完成后切回服务器端,继续以 git 用户的身份进入服务器、~/.ssh 目录

把上传的 id_rsa.pub(公钥) 重命名为 authorized_keys

1
mv id_rsa.pub authorized_keys

5.在服务器上设置文件权限

1
2
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh

6.确保设置了正确的 SELinux 上下文

1
restorecon -Rv ~/.ssh

现在,当您使用 ssh 远程登录服务器时,将不会提示您输入密码(除非您在创建密钥对时输入了密码)

7.接下来在本地计算机上使用 ssh 方式连接我们的云服务器

1
ssh -v git@xxx.xxx.xxx.xxx

1
ssh git@xxx.xxx.xxx.xxx

此时将会跳过输入密码阶段,直接连接成功

配置 Git 仓库

在服务器上使用 git 用户创建一个 Git 仓库,并且在该仓库中新建一个 post-receive 钩子文件

1
2
3
4
5
6
7
cd ~

// 创建仓库
git init --bare hexo.git

// 创建钩子文件并编辑
vi ~/hexo.git/hooks/post-receive

输入:git --work-tree=/home/www/hexo --git-dir=/home/git/hexo.git checkout -f 然后保存退出
这么做的意义是让钩子文件删除 /home/www/hexo 目录下原有的文件,然后从 blog.git 仓库 clone 新的博客静态文件到 /home/www/hexo 目录下

授予钩子文件可执行权限

1
2
3
4
5
chmod +x ~/hexo.git/hooks/post-receive

cd ~

sudo chmod -R 777 /home/www/hexo

至此就完成了所有关于服务器端的配置

如果无效就重启服务器

其它配置

客服端 hexo 配置

在本地计算机 hexo 的工程目录下,找到_config.yml,对 deploy 参数进行修改

hexo-config

安装插件:hexo-deployer-git 和 hexo-server

在本地项目文件夹下右键打开 GitBash,输入以下命令

1
2
npm install hexo-deployer-git --save
npm install hexo-server

这俩插件的作用分别是使用 Git 自动部署,和 hexo 本地简单的服务器

使用 Hexo 生成、发布个人博客

1
2
3
4
5
hexo clean

hexo generate

hexo deploy

此时,便可以通过浏览器访问 http://xxx.xxx.xxx.xxx:80/ 进入 hexo 博客主页了

参考文献:http://www.atangbiji.com/2019/12/22/buildHexoBlog/

欢迎关注我的其它发布渠道