Hexo 博客部署到阿里云ECS服务器(Ubuntu 20.04)和域名解析

背景

一开始我把Hexo博客部署到Github上,其实都是博客最入门的做法,如果没有把自己做的博客部署到自己购买的服务器上再加上域名解析,我觉得这个过程是不完整的,所以我把我自己部署网站的整个过程都记录下来,希望可以对即将部署自己网站的小伙伴们,提供一些参考意见。

服务器配置:

服务器购买推荐:

  1. 阿里云服务器,阿里云的服务器每年在双十一都会有活动,优惠很大。
  2. 推荐使用"轻量级应用共享型ECS服务器",推荐安装系统Ubuntu 20.04,或者你自己最熟悉的系统。

远程连接服务器

  1. 进入阿里云→云服务器管理控制台→远程连接,设置好root密码重启电脑生效。
  2. 配置ssh远程连接服务器,在云服务器控制台→进入服务器实例→安全组→配置规则→出方向→快速添加→选中SSH(22),按确定即可!!
22

3.假设我服务器公网IP地址就是20.21.11.11,在本机电脑使用ssh [email protected]远程登陆服务器,连接成功后输入自己刚刚设置好的云服务器的密码,就可以成功登录登录到云服务器啦。

在云服务器中创建新用户

创建新用户kizai

adduser kizai # 这个会提示需要重新设置一个新的登录密码
chmod 740 /etc/sudoers
vim /etc/sudoers

找到如下root ALL:(ALL:ALL) ALL后,添加一行

kizai ALL:(ALL:ALL) ALL # kizai替换成自己的用户名

获取root权限

sudo passwd kizai

切换到kizai用户

切换到新建的用户后(后面都是以此用户和~目录下工作),安装一些常用的软件。

su kizai
cd ~
sudo apt-get update
sudo apt-get upgrade
sudo apt install vim git htop screenfetch curl wget tmux # 看自己的需求来安装

配置SSH

创建~/.sshauthorized_keys文件,赋予权限。

mkdir ~/.ssh
vim ~/.ssh/authorized_keys #名字不能错
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh/

本机电脑创建ssh公钥

切回到本机电脑,需要生成一个本机电脑的ssh公钥,放好服务器的.ssh/authorized_keys文件里面。如果本机电脑已经生成公钥可以忽略我这一步。window系统这边建议先装一个叫Window Terminal的软件,以下的操作基于这个软件。

ssh-keygen.exe # 一路按确定就好,会有一个路径提示给你在哪存放了id_rsa.pub
cat C:UsersKIZAI.sshid_rsa.pub # 根据你的路径修改,直接复制你的公钥到你的剪贴板备用。 

再回到服务器端把公钥加到authoried_keys文件中。
断开服务器连接,再使用ssh [email protected]就可以不需要输登录密码就可以成功连接了。

配置Git

创建Git裸库blog.git,和工作目录blog(存放解析后html文件)。

cd ~
mkdir blog
git init --bare blog.git
vim blog.git/hooks/post-receive # 创建新文件

post-receive添加hook钩子。

#!/bin/sh
git --work-tree=/home/kizai/blog --git-dir=/home/kizai/blog.git checkout -f

添加执行权限

chmod +x blog.git/hooks/post-receive

可以执行git clone [email protected]:/home/kizai/blog.git下载云服务的文件到本机。

安装nginx

安装 nginx 和修改对应配置文件

sudo apt install
sudo vim /etc/nginx/sites-available/default

找到

# include snippets/snakeoil.conf;

root /var/www/html; 

替换

# include snippets/snakeoil.conf;

root /home/kizai/blog;

执行 service nginx status查看nginx状态,其默认状态是运行中(服务开始了) + 开机自启 (若是没有,需要执行此状态 );如果不熟悉nginx的常用命令可以参考9 Popular Nginx Commands You Should Know

若此刻直接访问云服务器的公网IP不会显示任何内容,因为云服务器的80端口还没被打开。
回到云服务器控制管理中心,在云服务器控制台→进入服务器实例→安全组→配置规则→入方向→快速添加→选中HTTP(80),按确定即可!!
80

重新输入服务器公网IP就可以看到nginx欢迎界面,因为此时/home/kizai/blog文件夹为空,没有任何html文件。

本机配置:

创建hexo文件夹

在本地创建一个kizaiblogtest的文件夹,用来最小化验证部署是否正确。

cd ~
hexo init kizaiblogtest     # 创建和初始化kizaiblogtest文件夹
cnpm install                # 安装插件
cnpm install hexo-deployer-git  # hexo deploy 部署插件

修改kizaiblogtest根目录下的配置文件_config.yml,末尾修改为

# Deployment
## Docs: https://hexo.io/docs/one-command-deployment
deploy:
  type: git
  repo: [email protected]:/home/kizai/blog.git
  branch: master                           
  message: '站点更新:{{now("YYYY-MM-DD HH:mm:ss")}}'

部署到云服务器

kizaiblogtest文件夹中,使用终端进行部署

hexo clean && hexo g # 清理 生成html文件
hexo deploy && hexo  # 部署,会自动将生成的 html 文件, push 到阿里云服务器的 /home/kizai/blog 文件夹中

然后重启阿里云服务器后,浏览器输入服务器公网IP,即可网页看到解析后的部署网页 “Hello World”。

最后替换为自己的真实博客文件夹的_config.yml文件末尾处替换为如上,重新执行hexo deploy部署即可成功;建议使用Github或者Gitee把之前的工程文件托管起来做好备份。

域名解析

上面的步骤只是把博客部署云服务器上了,但是访问它还是需要用到公网IP,这访问也太难受了,所以我们要使用域名的方式来访问网站,那怎么把域名绑定到服务器上呢?其实比较简单,看步骤!
1. 在阿里云或者其他平台购买域名,根据自己的想法来设计自己的域名和它的后缀。购买完需要实名认证。
2. 回到阿里云控制台搜索"云解析DNS",进入云解析DNS→域名解析→看到自己的域名后面有一个解析设置→点击解析设置,可参考以下设置:

ipdns
  1. 等个几分钟,使用注册好的域名就可以访问自己的博客啦!
  2. 在中国地区购买的服务器和域名是需要备案的,大家绑定好域名记得做好备案工作喔!不然网站是正常访问不了的。

欢迎大家访问我的小破站kizaiblog

注意:
1.文中二维码和链接可能带有邀请性质,请各位玩家自行抉择。
2.请勿通过链接填写qq号与密码、银行卡号与密码等个人隐私信息。
3.禁止纯拉人头,拉app注册等信息,发现必小黑屋。
4.同一种信息仅发一次,多发会被删除。
5.文章关联方不想展示也可以微信站长“socutesheep”删除。
本文由 @kizai 发布。如若转载,请注明出处: 科技玩家 » Hexo 博客部署到阿里云ECS服务器(Ubuntu 20.04)和域名解析

给TA买糖
共{{data.count}}人
人已买糖
教程玩家投稿

简单粗暴:傻妞对接node-onebot升级版 OICQ

2021-12-21 0:30:56

教程玩家投稿精选文章

NVJDC 2.2 一对一资产推送更新

2021-12-21 22:16:12

71 条回复 A文章作者 M管理员
贴心提醒
请认真对待作者付出,勿发表无意义言论,触发过滤规则的评论将无法提交,包含敏感词的评论会自动变成待审核状态哦。
  1.  18003

    支持支持

  2. 衍

    支持一下

  3.  17691

    感谢大佬

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索