Hexo自动部署至虚拟主机

前言

去年618我在西部数码一次性买了五年的云虚拟主机,当时好像才两三百块钱。云虚拟主机买来主要是用来挂备案的,想着小厂备案可能查得不严。刚开始还好,博客也部署在华为云服务器上,可能域名指向的是国内,也确实没查过备案。

今年6月份华为云到期了没续费,刚好我人也在国外,本着能省则省的原则,就把博客部署到Netlify了。结果还不到一个月,西数就发邮件来说检测到域名指向了其他IP地址。西数邮件

最后没办法,就只能把这个云虚机用起来,域名分开解析,国内解析到这台虚机,国外解析到Netlify。

但是这样问题也来了,Netlify还好说,只需要部署至GITHUB就好了;可是虚拟主机就不方便了,网上都是说安装 hexo-deployer-ftpsync 插件,但在部署的时候一直报错,上传不了,只能自己手动FTP上传了。

后来了解到有个东西叫做 FTP-Deploy-Action ,可以通过 GitHub Action 自动将博客部署到虚拟主机,简直不要太方便,甚至还可以通过 GitHub Action 同时部署到 Github Pages 和虚拟主机。

前提条件

一、需要使用虚拟主机部署Hexo博客
二、Hexo博客能正常部署访问

如果还没有Hexo博客或者不会搭建Hexo博客的话,可以看看下面两篇文章:

1、Win10:Hexo+github搭建个人博客

2、Ubuntu:Hexo+github搭建个人博客

三、Hexo博客可以通过 GitHub Action 部署到 Github Pages

如果还没有配置好 GitHub Action 的话,可以看看这篇文章 使用Github Action实现全自动部署

另外,在将本地文件备份至 Github 的过程中,可能会出现主题文件夹是空文件夹的情况,这样通过 GitHub Action 部署后博客打开会白屏没有任何样式。解决办法可以看看这里 Hexo主题themes-文件夹无法提交到GitHub的解决方法

配置 GitHub Action

打开 Action 配置文件(本地博客仓库目录/.github/workflows/(Action配置文件).yml),在后面添加

1
2
3
4
5
6
7
8
9
- name: Deploy Files on Ftp Server
uses: SamKirkland/FTP-Deploy-Action@4.3.3
with:
server: (FTP服务器地址)
username: (FTP用户名)
password: (FTP密码)
local-dir: ./public/
server-dir: (FTP服务器文件目录)
port: (FTP服务器端口,一般是21)

最后直接将博客源码提交到github上就行了。