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
主题