Hexo从github pages迁移到阿里云服务器
本文最后更新于:8 个月前
Hexo部署在github上虽然免费,但是存在一些难以容忍的缺点,如:部署上传慢、偶尔还会上传失败,部署之后无法立即获得更新的结果,绑定自定义域名在部署之后经常会失效。于是决定将hexo博客迁移到阿里云ECS轻量服务器上。
Hexo从github pages迁移到阿里云服务器
一、前置工作
下面是一些需要完成的前置工作,因为我不是第一次使用云服务器了,所以一些需要的配置已经存在了,这里只做一个列举,可以参考其它资料进行安装配置
- 阿里云服务器安装git
- 阿里云服务器安装Apache(在CentOS 7 中叫httpd)
二、创建git用户
确保当前登陆的用户为root(需要保证足够的权限)
- 新建git用户
1 |
|
- 设置git用户密码
1 |
|
- 添加git用户权限
先扩大对/etc/sudoer的权限,然后编辑
1 |
|
找到指定位置,添加如下:(按i进入编辑模式,添加代码,按esc退出编辑,按:wq保存退出)
修改回对/etc/sudoer的权限
1 |
|
三、添加ssh验证
切换到git用户
1 |
|
创建 ~/.ssh 文件夹和 ~/.ssh/authorized_keys 文件
1 |
|
按”i”进入编辑模式,将我们在win10中生成的id_rsa.pub文件中的公钥复制到authorized_keys中,按”esc”,然后按”:wq”,保存退出
赋予权限
1 |
|
测试git连接,在本地端打开git bash,然后输入以下命令(其中git@后面接的是你的服务器公网ip)
1 |
|
过程中可能需要根据提示输入一次yes,然后如果没有问题就连接成功啦
四、创建放置hexo的git仓库
切换到root用户
1 |
|
在var目录下创建repo作为Git仓库目录
1 |
|
赋予git用户权限
1 |
|
接下来创建hexo目录作为网站根目录,并赋予权限:
1 |
|
接下来创建一个空白的git仓库
1 |
|
创建一个新的 Git 钩子,用于自动部署
在 /var/repo/hexo.git 下,有一个自动生成的 hooks 文件夹。我们需要在里边新建一个新的钩子文件 post-receive
1 |
|
进入编辑模式,然后将下面那两行代码粘贴进去,保存退出。
1 |
|
修改权限:
1 |
|
到这里Git仓库已经搭建完毕了
五、修改Apache配置
注释掉
/etc/httpd/conf/httpd.conf
末尾的两句代码(这样就关闭了node项目的代理)修改默认主页的目录
编辑/etc/httpd/conf/httpd.conf
,找到DocumentRoot
这行,修改默认主页的目录为/var/hexo
保存退出
- 停止node项目进程
进入到之前的Express项目目录下/home/node/BlogSite2
1 |
|
- 重启httpd服务(这一步很重要!使修改的设置生效)
1 |
|
一开始漏了这一步,所以访问公网ip提示错误
官方文档:反向代理设置指南_Apache中文文档 (apachehttpd.com)
扩展
手动停止httpd服务 systemctl stop httpd.service
查看httpd服务状态 systemctl is-enabled httpd.service
或者systemctl status httpd
六、修改本地hexo配置
进入本地电脑hexo博客的根目录,编辑站点配置文件 _config.yml,找到deploy,修改成以下
最后在本地电脑hexo博客的根目录右击,Git Bash Here,输入以下命令部署
1 |
|
七、给阿里云服务器添加ssl证书
首先申请一个免费的ssl证书,参考:2022阿里云免费SSL证书申请全过程(图文详解)-阿里云开发者社区 (aliyun.com)
然后在Apache服务器上安装SSL证书,参考视频教程:Apache Tomcat及httpd服务器安装SSL证书教程 (aliyun.com)
视频教程中出现的一些有用的命令
1 |
|