1.序言

我的HEXO博客从一开始的Github部署,到后来的腾讯云->阿里云部署,每一次服务器到期后高昂的续费费用都迫使我不得不重新寻找新的云服务器厂商去重新部署,时间成本不低,且迁移时间的差距往往都在1年以上, 以往的部署方式都忘的差不多了,所以此次迁移做一个记录,如果以后还有迁移需要亦或其他人想借此参考,都可回头来看看。

2.资源准备

  • 一台云服务器
  • 一个域名
  • 国内服务器需要备案(我这边已经备案过了,后续如果有需要可单独再出一篇备案教程)
  • 本地windows需要准备好GIT环境、NodeJs环境、Hexo博客环境,此次默认本地都已配置完成

3.本地计算机操作

默认本地的GIT以及Hexo都配置好了,只是做个迁移。需要做的就是进入_config.yml文件中,修改deployrepository地址,非常简单。

修改好后,即是部署三件套

1
2
3
4
hexo clean # 清理历史静态生成文件
hexo g # 生成新的静态文件
hexo s # 本地部署博客,查看情况
hexo d # 将静态文件发布推送到远程仓库

4.云服务器侧配置

4.1基础配置

首先,选择进入云服务器控制台,选择相应的连接方式,连接到云服务器

接着,给这台服务器安装宝塔面板

1
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh

选择命令14后,复制面板对公网放开的地址,直接在浏览器中访问。访问有可能失败,这是因为阿里云侧有端口访问限制,手动将宝塔面板需要的端口对外开放即可。

进入宝塔面板后,无脑极速安装LNMP,跳过99%部署问题

4.2Git环境安装

新的机器建议,输入如下命令安装一下依赖

安装依赖库

1
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel

安装编译工具

1
yum install gcc perl-ExtUtils-MakeMaker package

如果你服务器有了编译工具和依赖库就可以不用输入上面的命令

查看Git版本

1
git version

删除旧Git

1
yum remove git -y

下载并且解压最新版本git

1
2
3
cd /usr/local/src  #进入下载的目录
wget https://www.kernel.org/pub/software/scm/git/git-2.28.0.tar.gz #下载最新版
tar -zxvf git-2.28.0.tar.gz #解压到当前文件夹

编译并安装

1
2
3
cd git-2.28.0  #进入文件夹
make prefix=/usr/local/git all #编译源码
make prefix=/usr/local/git install #安装路径

配置git环境变量

1
echo 'export PATH=$PATH:/usr/local/git/bin' >> /etc/bashrc

刷新环境变量

1
source /etc/bashrc

查看版本号

1
git --version

创建git账户并且添加账户的权限

1
2
3
adduser git		#创建git账户
passwd git #给git账户设置密码
chmod 740 /etc/sudoers

修改内容

1
vim /etc/sudoers  #打开需要修改的文件

在上面打开的文件里面找到如下内容

1
2
#Allow root to run any commands anywhere
root ALL=(ALL) ALL

添加如下内容

1
git	ALL=(ALL)  ALL

按下键盘上的Esc按键,然后进入进入编辑模式(i),输入:wq即可保存退出,然后修改权限。

1
chmod 400 /etc/sudoers

切换到git用户,并且创建/.ssh文件和/.ssh/authorized_keys文件

1
2
3
su git		#切换到git账户
mkdir ~/.ssh #创建~/.ssh文件
vim ~/.ssh/authorized_keys #打开文件

然后把本地Windows10的Git生成的id_rsa.pub文件中的公钥内容复制到authorized_keys里面去

给文件赋予权限

1
2
chmod 600 /home/git/.ssh/authorized_keys
chmod 700 /home/git/.ssh

测试是否能免密登录git

1
ssh -v git@你的服务器IP地址

创建仓库目录

1
2
3
mkdir /var/repo  #repo作为git仓库目录
chown -R git:git /var/repo
chmod -R 755 /var/repo

创建网站目录

1
2
3
mkdir /www/hexo
chown -R git:git /www/hexo
chmod -R 755 /www/hexo

创建一个裸的git仓库

1
2
3
su root #切换到root用户
cd /var/repo
git init --bare hexoBlog.git

同步网站根目录

1
vim /var/repo/hexoBlog.git/hooks/post-receive

然后按i进入编辑模式,在这个文件里面添加两行代码,作用是指定git工作树源代码和git目录。

1
2
3
# !/bin/bash

git --work-tree=/var/www/hexo --git-dir=/var/repo/hexoBlog.git checkout -f

然后Esc,进入编辑模式:wq保存退出即可

修改文件权限使得可以运行

1
2
chown -R git:git /var/repo/hexoBlog.git/hooks/post-receive
chmod +x /var/repo/hexoBlog.git/hooks/post-receive

至此Git仓库搭建完毕。

重启宝塔面板

1
service bt restart

然后回到本地Windows10系统

清理缓存并且推送到服务器

1
2
3
hexo clean #清理缓存
hexo g #重构文件
hexo d #推送到服务器

至此,本地Windows10的Hexo静态博客文件便部署到云服务器上了

5站点配置与域名解析

5.1站点配置

进入宝塔面板,进行站点配置

站点添加完毕后,进入站点设置界面,申请SSL证书,这样可以才用HTTPS协议。可以申请Let’s Encrypt免费证书,他的有效期是3个月,默认的宝塔面板会自动帮你续签,申请的时候选择文件验证或者DNS验证都可以。

5.2域名解析

找到自己的域名控制台,添加解析记录。

主机记录 记录类型 解析请求来源 记录值 TTL
@ A 默认 服务器公网IP 按需设置
www 服务器公网IP 默认 服务器公网IP 按需设置

6.大功告成

在浏览器地址栏输入域名,即可访问博客。