如何将HEXO部署到虚拟主机上

最近接触了一段时间的HEXO,自己没有网页开发经验如盲人摸象,折腾了很久才有些门目。
HEXO是一个静态网页生成工具,如果将HEXO看作一个生产线,你把你写的markdown文章扔进去,它会产出一个静态html,然后部署到某个服务器上等待访问。
因为本地的电脑比较杂乱,笔者将HEXO放到了服务器上,这样比较方便多个计算机终端管理文章,并希望以这台服务器托管网页。但是HEXO在部署时,默认将网页传到githubpage上,而不是这台服务器的public_html文件夹(apache默认html文件夹),这是需要解决的问题。

Warning
因为HEXO生成的HTML+CSS+JS多且零碎,在本地采用FTPsync上传会产生频繁的FTP写操作,而有些云服务商家会将FTP频繁的IP拉入黑名单(笔者亲历),所以如果你在本地使用FTP,一定要先跟客服沟通好再使用此插件。
如果不可以,可以将public文件夹中的内容打包一起上传,然后在云端解压

这里采用FTPsync插件解决这个问题


原理

FTPsync插件的功能是通过FTP将网页文件上传到目标服务器上,如果HEXO装到了网页托管服务器本身,FTP地址设置127.0.0.1即可

步骤

1、在虚拟主机上设置一个新的FTP帐户:

帐户名(例):example@xxx.yyy
密码:12345
并将FTP文件夹设置到目标文件夹如public_html中
2、cd到你的blog目录,安装FTPsync

1
npm install hexo-deployer-ftpsync --save

3、在_config.yml添加以下内容:

1
2
3
4
5
6
7
8
9
10
deploy:
type: ftpsync
host: 127.0.0.1
user: example@xxx.yyy
pass: 12345
remote: /
port: 21
# ignore:
connections: 1
verbose: false

其中ignore被注释掉了,其意义是部署时忽略的文件。注释掉此句表示全部更新。

通过以上这几步设置之后,部署后可以发现,你的博客目录中/public文件夹中的所有文件被复制到/public_html文件夹下

参考

https://hexo.io/zh-cn/docs/deployment.html

0%