hexo-blog迁移工作(部署hexo到云服务器)
由于之前阿里云的服务器到期, 并且续费新的服务器很不友好 , 这里重新准备(白嫖)了一个新的服务器 , 因此需要迁移一下blog
准备工作
- 可以正确运行的blog(这里指的基本的配置没有问题 , 之前都可以正确运行)
- 云服务器(本文以centos 7.9为例)
core
准备服务器
这里准备一个全新的服务器, 意味着很多的东西都需要重新绑定, 配置, 因此搞起来还是有一点点麻烦的。
买服务器的话不需要多说, 只要是可以公网访问的Linux服务器都可以。
宝塔
虽然最开始学习Linux的时候很多人说不建议使用 xx面板 , 不过这里为了快速配置,还是用一下比较好233
如果你在选择服务器的时候已经选择了 宝塔面板 , 那么启动服务器输入
bt
选择14
查看面板信息 , 公网登录即可
配置公钥
我们首先通过本地的shell工具远程连接服务器 (这里以Xshell为例)
登录的账户选择root , 密码可以在 服务器的控制台初始化用户密码
登录成功可以看到类似的 输出
1 | Last login: Fri Nov 3 21:57:47 2023 from 122.206.190.75 |
添加用户
首先需要确定服务器安装 ssh 服务
这里我们添加用户 git
专门用来执行博客的上传操作
1 | useradd git |
接着为git生成.ssh
目录
1 | su git |
配置仓库
首先需要确定服务器安装了 Git 服务
1 | [root@iZbp1dul7chbryhj7h36btZ ~]# git --version |
接着我们 初始化仓库
cd /var/repo/dhx-blog.git
git init
1 | [root@iZbp1dul7chbryhj7h36btZ dhx-blog.git]# ls -al |
最后记得修改 目录的所有者为git用户
1 | chown -R git dhx-blog.git |
hooks
这里我们简单了解一下 hexo d
的流程
这里我们配置的hooks如下
1 | [root@iZbp1dul7chbryhj7h36btZ hooks]# cat post-receive |
增加一个新的 worktree ,并指定了其关联的目录是
path
,关联的分支是<branch>
。后者是一个可选项,默认值是HEAD
分支。如果<branch>
已经被关联到了一个 worktree ,则这次 add 会被拒绝执行,可以通过增加-f | --force
选项来强制执行。
配置ssh
通过上面的流程图我们可以知道在上传代码的时候实际上还是需要ssh远程登录服务器的 , 因此这里最好配置一个公钥访问(否则每次hexo d 都需要手动输入密码 , 非常的烦人)
windows生成公钥
你使用的电脑 , 打开~/.ssh
, 上传id_rsa.pub
到服务器的
上传公钥到server
这里通过 Xshell上传 公钥文件到服务器
如果没有安装RZ命令请提前安装
yum -y install lrzsz
接着把 公钥添加到授权文件中
1 | cp id_rsa.pub authorized_keys |
1 | [root@iZbp1dul7chbryhj7h36btZ .ssh]# pwd |
Nginx
如果没有安装Nginx请在宝塔面板 软件商店中 搜索并选择 快速安装
我们使用hexo生成的博客网站是纯静态的html页面 , 这里使用Nginx作为容器进行网站搭建。
- 添加站点
- 配置目录映射
修改本地blog配置文件
找到 blog根目录下的 _config.yml
文件 , 修改对应的选项即可
1 | deploy: |
这里的git@xxxx
, 既可以填写域名 也可以直接填写 服务器的IP , 其中 的git@
指的是 ssh登录的账户(如果大胆一点 , 写成root@xxxxxxx
也是完全可行的, 不过不是很建议)
hexo d
在部署的时候 也是采用ssh进行远程登录的
更改域名解析
在域名解析中 配置 IP 的记录即可(注意与Nginx中的配置对应)。
problems & solve
! [remote rejected]
! [remote rejected] HEAD -> master (branch is currently checked out)
error: failed to push some refs to ‘47.98.100.253:/var/repo/dhx-blog.git’
阿里云安全组
阿里云自带的防火墙 , 一定要开始80端口的访问。。。
reference
- Git Push 错误 [remote rejected] master -> master (branch is currently checked out) & 无法查看push后的git中文件https://blog.csdn.net/kamemo/article/details/6440807
- https://blog.csdn.net/qq_27870421/article/details/94550689
- git work tree : https://www.jianshu.com/p/ffeb38d27f64