Hexo + Butterfly 建站指南(二)部署至个人站点或 GitHub Pages
现在我们需要把静态文件上传到公网上,让所有人都能访问
打开_config.yml,拉到最底下,找到# Deployment那一块,现在我们需要配置这里

按照官方文档有很多种方法,一般情况下只用得着两种:SFTP和Git
SFTP推送至个人服务器是付费方案,Git推送至GitHub是免费方案
法一:SFTP
租过个人服务器的都是有Linux经验的,这里我就简单点说
安装Web服务器
一般用Nginx或者Apache就行,这里以Nginx为例
1 | sudo apt update |
配置本地文件
先安装hexo-deployer-sftp依赖
1 | npm install hexo-deployer-sftp --save |
查阅官方文档来配置:
1 | deploy: |
| 参数 | 描述 | 默认值 |
|---|---|---|
| host | 远程主机的地址 | |
| user | 使用者名称 | |
| pass | 密码 | |
| remotePath | 远程主机的根目录 | / |
| port | 端口 | 22 |
| privateKey | ssh私钥的目录地址 | |
| passphrase | (可省略)ssh私钥的密码短语 | |
| agent | ssh套接字的目录地址 | $SSH_AUTH_SOCK |
如果是用私钥的我就不说了,如果是只用账户和密码的需要注意下,密码是需要用双引号括起来的,否则无法部署
例:
1 | deploy: |
保存好之后,执行下面的命令,看看能不能成功部署
1 | hexo clean |
法二:GitHub Pages
首先安装 git

注册 GitHub 账号并创建个人仓库
由于众所周知的原因,建议使用魔法上网
登录 https://github.com 注册账号,点击右上角的加号->New repository来新建仓库
仓库名称为你的用户名.github.io,如NOTSPROG.github.io,下方的Add a README file记得勾上

生成 SSH 密钥
在CMD中使用ssh-keygen生成密钥
1 | ssh-keygen |
然后根据提示一路填下去就行
之后打开你的用户目录,进入里面的.ssh文件夹,会发现有id_rsa(私钥)和id_rsa.pub(公钥)两个文件

将公钥添加到 GitHub
打开GitHub,点击右上角头像->Setting->左侧 SSH and GPG keys->New SSH key,或者点击此链接

用记事本打开id_rsa.pub,把里面的内容复制进去,然后随便取一个title

配置本地文件并部署
首先安装依赖
1 | npm install hexo-deployer-git --save |
然后修改_config.yml,repository就填你的仓库地址,分支选择main
例:
1 | deploy: |
保存好之后,执行下面的命令,看看能不能成功部署
1 | hexo clean |
每次在本地推送完后,还要等待GitHub反应过来部署到他家的服务器上

完成之后在浏览器中访问你的用户名.github.io,看看能不能看见你的网页(当然,我这里已经配置了butterfly主题)

前车之鉴
-
部署至
GitHub不能太过频繁,否则会造成443错误并被锁定一段时间

-
尽量不要挂着梯子部署,不然会有以下错误

配置自定义域名(可选)
如果你觉得你的用户名.github.io这个用户名不够高级,那么你可以自己去阿里云、腾讯云之类的地方租一个域名
当然,这是要花钱的,不过廉价的域名也还算便宜,我的域名花了大概200块就租了10年
打开解析域名的界面,添加CNAME记录,全部指向你的GitHub Pages域名

然后打开你的Github仓库->Settings->Pges,在下方的Custom domain填上你的域名并保存

之后你会发现根目录下有一个CNAME文件,内容是你的域名

但是当你在本地hexo d的时候,Github上的CNAME就会消失(因为你本地没有这个文件)
所以我们在本地也需要创建一个CNAME

再生成、部署一次,CNAME应该还是在的
1 | hexo g && hexo d |
等Github的反应完之后,用的就是你的自定义域名了

安装 SSL 证书
没有安装SSL证书时,你的网站使用的是HTTP协议,连接没有加密,会显示为不安全

而安装了SSL证书之后,网站使用的就是HTTPS协议,连接会被加密,图标会变成一把锁

我之前嫌麻烦,一直懒得配置SSL证书~~(又不是不能用)~~
但是每当同学看我的博客的时候,都会有人问我:
“你这博客为什么不安全啊?”
我晕…每次都要解释一句,这是连接不安全,又不是我的网站不安全
但是最后为了面子还是去弄了一个,总结教程如下:
-
使用个人站点的话请移步『Linux』Nginx 配置 SSL 证书
-
如果是
Github Page的话,勾选下面的Enforce HTTPS就可以了,GitHub过一会儿会给你弄好的
添加你的网站地址
部署到个人站点或者Github Pages后,就可以在_config.yml中正大光明地写上你的网站地址了

下一篇,将讲述如何配置并美化butterfly主题