宝塔部署Hexo博客到CentOS 8.2并通过在线发文章及用脚本保存数据到git

准备工作

  • 宝塔账号,没有就去官网注册一个: www.bt.cn
  • gitee账号,以及你的hexo博客的git仓库
  • 一台CentOS8服务器(我用的是华为云)
  • 在云服务器安全策略中,开启用到的端口号
    ssh:22,宝塔:8888,hexo:4000

以上准备就绪后,开始部署!

1、首先在CentOS8.2上安装宝塔面板

打开宝塔官网安装页面

https://www.bt.cn/new/download.html

滚动到如下页面

bt安装

输入服务器的ip\密码,开始安装

image.png

选择安装套件,只选择Nginx即可,立即安装到服务器

选择安装套件

等待几分钟即可安装完成

安装完成

记录下宝塔面板地址,以及用户名和密码

登录宝塔面板

宝塔登录

绑定宝塔账号

绑定

宝塔默认8888端口,改个其他端口号,不然提示风险

端口风险提示

点击立即修复,我这里用了9000,记得在服务器安全策略中放行9000端口

端口修改

开启宝塔的SSL,也就是https, 避免风险提示

SSL风险

自签ssl证书

自谦ssl证书

至此宝塔面板就搞定了,接下里就使用宝塔来部署hexo了

2、使用yum安装git,使用git拉取hexo的博客到服务器上

更换yum源为阿里云的

打开宝塔面板左侧的-终端,连接上服务器,最好root用户登录

宝塔终端

先下载阿里云的yum源,完成后,拷贝其内容
http://mirrors.aliyun.com/repo/Centos-8.repo

在终端里执行命令,进入yum源的文件夹

cd /etc/yum.repos.d

ls查看下文件

ls

记住以下文件名

repo

如果该目录中存在 CentOS-Base.repo 就使用它
不然就使用CentOS-Linux-BaseOS.repo

替换yum源,依次执行命令

将原有的备份

mv /etc/yum.repos.d /etc/yum.repos.d_bak

新建目录

mkdir /etc/yum.repos.d

使用vi添加新yum源(这里也可以使用宝塔的文件操作)

vi /etc/yum.repos.d/CentOS-Linux-BaseOS.repo

打开后,文件没有内容,将刚下载的阿里云yum源内容粘贴进来

yum源文件

退出保存。yum源就换好了。

下面使用yum安装git

首先更新yum的包

yum update

yum update

安装git

yum install git

install完成

查看下git的版本,确认是否成功

git --version

git版本

在gitee.com上配置ssh key,实现本地无密码访问git仓库,用来拉取和上传文件

这里有个注意的点,因为宝塔的用户是www,而终端中用的是root
而最终上传文件时是以www用户操作的,所以这里最好以www用户创建ssh的key文件

首先在服务器上创建秘钥文件,命令如下(email替换为你的gitee的邮箱)

sudo -u www ssh-keygen -t rsa -C "xxxx@example.com" -f /home/www/.ssh/id_rsa

输入完命令后,一路回车即可。

秘钥生成

查看公钥文件内容

cat /home/www/.ssh/id_rsa.pub

公钥

复制公钥的全部内容,添加到gitee中

打开gitee.com并登录,进入设置,安全设置的ssh公钥,粘贴公钥,点击确定保存

添加公钥

添加成功后的效果

成功添加

从gitee上拉取hexo博客到本地

首先创建blog文件夹,用于存放hexo博客

为什么在home/www中创建,因为这个目录是www用户的,便于它操作
sudo -u www 是表示作为www用户创建的

sudo -u www mkdir /home/www/blog

进入该目录

cd /home/www/blog

在gitee的hexo仓库中,找到git拉取的地址

git地址

在终端执行拉取命令

sudo -u www git clone git@gitee.com:dosedo/hexo-blog.git

会让你选择是否继续,输入yes后,回车

选择yes

拉取成功

拉取完成后,更改仓库的URL为SSH格式

进入博客git目录

cd /home/www/blog/hexo-blog

更改仓库URL为SSH格式

git remote set-url origin git@gitee.com:dosedo/hexo-blog.git

设置本地git账户名,将邮箱和用户名替换为你自己的gitee上的

git config --global user.email "gitee的邮箱"
git config --global user.name "gitee的用户名"

这里准备就绪,下一步开始安装nodejs以及hexo。

3、安装NodeJS,然后使用node安装hexo

安装NodeJS

在宝塔左侧菜单–软件商店–全部–顶部搜索node–找到nodejs版本管理器–安装

安装nodejs版本管理器

立即安装

立即安装

安装成功后,点击设置

image.png

点右上角 更新版本列表,选择一个稳定版本,然后安装

安装稳定版

安装完成后,设置命令版本

设置命令行版本

关闭页面即可,回到宝塔的命令行,查看下node版本

node -v

node版本

看到版本号,说明node已安装成功。

安装cnpm(可选)

cnpm是npm的国内镜像。解决了网络问题。当然网络好的话,直接用npm就行。

nodejs以及cnpm安装视频教程

cnpm安装命令

npm install -g cnpm --registry=https://registry.npmmirror.com

安装完成后,配置下环境变量
使用find命令看下位置

find / -name cnpm

find

编辑~/.bash_profile文件,添加PATH 如下图

env

安装hexo

回到命令行,进入/home/www

cd /home/www

执行安装命令

npm install hexo 

hexo安装完成

进入hexo博客目录,安装hexo插件依赖

cd /home/www/blog/hexo-blog
npm install

插件安装完成

到这里,博客其实可以算是安装完了。只差开启服务,就可以访问了。

4、开启web服务

开启服务很简单,在宝塔的网站中添加node项目

宝塔左侧菜单–网站–Node项目–添加Node项目

添加node项目

设置博客路径等信息

web项目添加

完成后,在页面看到项目正常运行,说明web服务已经开启。

项目运行中

宝塔开放端口号,再浏览器访问博客:http://ip:端口号

直接访问好像不行。原因宝塔没有开放端口号

宝塔左侧菜单–安全–系统防火墙–添加端口号规则
开放tcp的4000端口,然后确定

开放端口

再次用浏览器访问博客:http://ip:端口号

终于看到博客啦 😁

博客首页

浏览器访问博客管理端:http://ip:端口号/admin

只要在博客端口号后加/admin就可以访问到管理端

管理端登录页

登录成功

后台管理

现在就可以正常使用该博客了!但hexo-admin插件中的执行shell脚本的代码有些问题,我自己写了一个,所以需要替换下。

5、配置一键保存文件到git

在hexo-blog目录下有一个depoly.js文件,即用来执行git上传文件的脚本代码的。将该文件替换hexo-admin插件目录下的 depoly.js即可。
执行命令:

先备份hexo-admin插件的depoly.js文件

mv /home/www/blog/hexo-blog/node_modules/hexo-admin/deploy.js /home/www/blog/hexo-blog/node_modules/hexo-admin/deploy.js_bak

将hexo-blog目录下的deploy.js拷贝一份到hexo-admin插件目录

cp /home/www/blog/hexo-blog/deploy.js /home/www/blog/hexo-blog/node_modules/hexo-admin/deploy.js

修改完后,在宝塔的网站中重启node项目

重启

至此,你就拥有了一个线上博客并可以一键保存文件到git上!!!

6、看下成果吧

发布一篇文章

编辑文章

编辑文章

设置分类和tag

分类设置

博客列表和正文

列表

正文

一键同步文件到git上

点击depoly部署按钮

depoly部署

输入备注,点击depoly开始提交到git

部署页

提交git完成

在gitee上查看提交的文件

gitee的文件

微信打赏

意外收获认可,内心充满感激;打赏之举,更添无限动力。