阿里轻量云使用宝塔面板部署Hexo
0x00 说明
该篇文章主要介绍如何利用宝塔BT面板,将Hexo生成的博客自动化部署到你的服务器上。由于一开始没有完整的教程供我参考,在整合了多篇文章后,我将整个流程尽可能简化,也给自己留一个备份,以供之后参考。
文章的主要内容如下:
- 选择Linux系统
- 设置SSH登录
- Hexo自动部署
- 宝塔面板部署
0x01 选择VPS以及服务器系统
由于我还是一枚学生,买不起高性能的服务器,于是就买个轻量云学生机玩玩,如果你追求稳定资金充裕,为了长久的维护博客,建议选择其他可靠的服务器。
系统方面我安装的是CentOS 7.3,当然你也可以选择使用Ubuntu/Debian系统,随个人爱好。
0x02 设置SSH登录
完成如下的设置,你可以直接使用你的命令行工具通过SSH来登录你的服务器(建议在代理下使用SSH),而且不需要每次都输入账号密码,如果没有相关需求的同学可以直接跳过这部分。
生成本地公钥
首先,我们现在本地生成自己的公钥
1 | cd ~/.ssh |
上传你的公钥到服务器
然后,将你的公钥/.ssh/id_rsa.pub
复制到服务器上对应用户的/.ssh/authorized_keys
即可,这里来说一般有以下三种:
-
如果本地使用macOS,则可以使用 ssh-copy-id-for-OSX 工具将公钥复制到服务器
1
2brew install ssh-copy-id #本地用brew指令安装ssh-copy-id
ssh-copy-id username@hostname #相应替换为你的服务器用户名和IP -
当服务器用户目录下尚未有.ssh目录时使用此方式
1
cat ~/.ssh/id\_rsa.pub | ssh root@47.100.76.113 "mkdir .ssh; cat > .ssh/authorized\_keys"
-
通用方式
1
2
3
4scp ~/.ssh/id\_rsa.pub username@hostname:~/ #将公钥文件复制至vps服务器
ssh username@hostname #使用用户名和密码方式登录至vps服务器
mkdir .ssh #若.ssh目录已存在,可省略此步
cat id\_rsa.pub > .ssh/authorized\_keys #将公钥文件id_rsa.pub内容追加到authorized_keys文件注意:其中USERNAME是服务端的用户名称,HOSTNAME是服务器的访问地址。
设置快捷登录
当完成以上操作后,我们就可以通过在命令行工具中ssh user@hostname
登录我们的服务器。当然,还有更简便的方式,省去记录主机名的麻烦,通过在本地编辑.ssh/config
设置我们的服务器信息
1 | sudo vim ~/.ssh/config |
添加内容如下:
1 | Host aliyun #自定义别名 |
这样我们就可以通过ssh aliyun
的命令行直接快速登录我们的服务器,如果提示"#?\233??\215?为?\240?\232\204ssh?\234\215?\212??\231?ip?\210\226domain"
,请删除上面的中文注释,再次重试。
0x03 Hexo自动部署
Hexo官方论坛提供了多种方式来实现自动部署,该教程使用了git-hook
的方式进行部署
- 首先,你需要在服务器安装
git
:
apt-get install git
- 然后,本地安装部署工具(这个大家都会安装,用来git推送文件)
npm install hexo-deployer-git --save
- 接下来,我们要继续在服务器上操作,我们要在上面安装一个git的裸仓库,这个仓库里不会存放任何文件,只是一个我们用来接收文件的中转站,当git接收到文件后将其直接存放到我们的指定的文件夹里面。
配置Git
接着,我们在/www/wwwroot
文件夹下新建hexo文件夹,在hexo文件夹内新建myblog文件夹。
1 | cd /www/wwwroot |
然后编辑post-receive文件,加入如下两条代码:
1 |
|
保存即可,接着转到已经登录的实例控制台,即xshell或者腾讯云控制台执行如下代码:
1 | chmod +x /www/wwwroot/hexo/hexoBlog.git/hooks/post-receive |
至此,git基本已经配置完成!
0x04 宝塔面板配置
宝塔面板在「添加站点」输入域名后默认的的网站目录是/www/wwwroot/domain
,这与我们的Hexo博客存放地址不符,因此我们需要修改一下
将「网站目录」修改为/www/wwwroot/hexo/myblog
,PHP版本选择纯静态
,点击「保存」
0x05 本地Hexo配置
找到本地Hexo站点配置文件_config.yml,进行如下更改:
1 | deploy: |
0x06 总结
至此,利用宝塔BT面板将Hexo博客部署到云服务器上就完成了,enjoy~