宝塔部署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
滚动到如下页面
输入服务器的ip\密码,开始安装
选择安装套件,只选择Nginx即可,立即安装到服务器
等待几分钟即可安装完成
记录下宝塔面板地址,以及用户名和密码
登录宝塔面板
绑定宝塔账号
宝塔默认8888端口,改个其他端口号,不然提示风险
点击立即修复,我这里用了9000,记得在服务器安全策略中放行9000端口
开启宝塔的SSL,也就是https, 避免风险提示
自签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 |
记住以下文件名
如果该目录中存在 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安装git
首先更新yum的包
yum update |
安装git
yum install git |
查看下git的版本,确认是否成功
git --version |
在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拉取的地址
在终端执行拉取命令
sudo -u www git clone git@gitee.com:dosedo/hexo-blog.git |
会让你选择是否继续,输入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版本管理器–安装
立即安装
安装成功后,点击设置
点右上角 更新版本列表,选择一个稳定版本,然后安装
安装完成后,设置命令版本
关闭页面即可,回到宝塔的命令行,查看下node版本
node -v |
看到版本号,说明node已安装成功。
安装cnpm(可选)
cnpm是npm的国内镜像。解决了网络问题。当然网络好的话,直接用npm就行。
cnpm安装命令
npm install -g cnpm --registry=https://registry.npmmirror.com |
安装完成后,配置下环境变量
使用find命令看下位置
find / -name cnpm |
编辑~/.bash_profile文件,添加PATH 如下图
安装hexo
回到命令行,进入/home/www
cd /home/www |
执行安装命令
npm install hexo |
进入hexo博客目录,安装hexo插件依赖
cd /home/www/blog/hexo-blog |
npm install |
到这里,博客其实可以算是安装完了。只差开启服务,就可以访问了。
4、开启web服务
开启服务很简单,在宝塔的网站中添加node项目
宝塔左侧菜单–网站–Node项目–添加Node项目
设置博客路径等信息
完成后,在页面看到项目正常运行,说明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开始提交到git
在gitee上查看提交的文件

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