将Hexo博客部署到阿里云服务器


前言

疫情期间,阿里云推出了学生“在家实践”计划,可以免费领取6个月的服务器,本着学习(白嫖)的目的,咱也得领啊,第一天没有抢到,主要不知道要先答题,答案网上都有,当然,大佬忽略我这句话,第二天答题过后很容易就抢到了,配置也还可以,链接在这( https://developer.aliyun.com/adc/student/ ),于是乎搭建了这个博客,期间也踩了不少坑,希望给有相关想法的同学提供一些帮助。

一.原理

搭建之前咱先得明白怎么回事才行啊,这里我们得先了解以下我们的博客采用的框架—Hexo,这是一个快速、简洁且高效的博客框架,关于这个框架的使用我会单独写一篇,这里主要讲部署相关的东西,敬请关注网站后续。

Hexo框架的大致架构为我们在自己的计算机上写好文章将它保存在source文件夹中,然后hexo会将我们的写好的文章转化为静态的HTML文件,之后push到git仓库,服务器中配置好git-hooks,就可以自动将我们仓库中的东西更新到网站的根目录,于是乎就能看到整个页面了(需要一点git相关的知识,最好能够学习一下,看不懂也没关系 照着敲就行)

二.云服务器和域名的购买

  • 云服务器

    这个就见仁见智了,可以选择阿里云、腾讯云和华为云,都是比较好的,我这里领了阿里云的服务器所以就在这个平台了。

  • 域名

    域名我建议你在哪个平台上买的服务器就在哪个平台上买域名吧,之后备案会方便一点,这里注意一下,如果是国内的服务器,想要绑定你的域名是一定要备案的,备案也要花上一段时间,没有备案的话,只能通过服务器给你的公网IP进行访问,比较不方便,也不太好记,不过如果是国外的服务器就不需要这么折腾了。

三.云服务器上的操作(以阿里云为例)

3.1 配置安全组规则

阿里云默认是不授权80端口访问的,这个端口跑的是网页服务器的访问,所以要先把它开启,否则后面配置好后也无法访问哦

登录你的控制台 -> 左侧云服务器ECS -> 点击实例ID ->

3.2 配置服务器环境

3.2.1 安装服务器

首先我们返回到实例详情页面,点击基本信息处的远程连接,输入用户名(默认为root)和密码登录进去,当初选购云服务器需要让你选择系统,那里我选择了Centos7.x的版本,有点忘了,选择你熟悉的就行,这里我们要先安装服务器,我们采用nginx作为我们的服务器,安装命令如下

yum install nginx 安装nginx

systemctl start nginx 开启nginx服务

systemctl enable nginx 跟随系统启动

做完以上步骤后,你可以用公网IP来访问以下你的网站,如果显示nginx或是centos的界面的话就是没问题的

3.2.2 修改nginx的配置文件

这里我们先自己编写好相应的配置文件,然后采用include的方式,将它引入到nginx的配置文件中,操作如下:

在/etc/nginx/目录下创建一个文件夹 叫做vhost

cd /etc/nginx/

mkdir vhost

cd myConfig(经读者反馈这里我写错了,应改为下面这行)

cd vhost

vim blog.conf

编写blog.conf的内容

1
2
3
4
5
6
7
server{
listen 80;
root /home/www/website;这里填博客目录存放的地址,我们待会儿去新建它
server_name 这里填你的域名
location /{
}
}

保存并退出 按下esc键 -> :wq

接下来我们把这个文件引入到nginx的配置文件中

vim /etc/nginx/nginx.conf

并且修改server中的一些值

3.2.3 新建存放博客的目录

也就是我们上面说的website,输入命令

cd /home

mkdir www

cd /www

mkdir website

四. 安装Git及Node.js

之所以要安装Node是因为我们的Hexo框架需要Node作为支持

输入命令

1
2
3
4
5
6
//安装Git
yum install git

// 安装Node
curl -sL https://rpm.nodesource.com/setup_10.x | bash -
yum install -y nodejs

之后新建一个用户并修改权限

adduser git

chmod 740 /etc/sudoers

vim /etc/sudoers

保存后退出 将权限修改回来

chmod 400 /etc/sudoers

1
2
3
4
5
6
7
8
9
sudo passwd git  //设置git密码
su git //切换到git用户
cd ~ //切换目录
mkdir .ssh //新建.ssh文件夹
cd .ssh //进入文件夹
ssh-keygen //生成公钥密钥文件
cp id_rsa.pub authorized_keys //复制文件
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh

五.测试

使用自己电脑 管理员方式运行命令提示符 连接云服务器

ssh -v git@你的公网IP

如果提示 Welcome balabala…..

就成功了

六.创建git仓库

在服务器端 创建git仓库,输入命令

1
2
3
cd ~
git init --bare blog.git
vi ~/blog.git/hooks/post-receive

输入git --work-tree=/home/www/website --git-dir=/home/git/blog.git checkout -f

保存并退出

修改权限

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

七.完成部署

修改Hexo的配置文件,也就是_config.yml(至于怎么在本地构建Hexo,之后我会再更新,敬请关注!)

1
2
3
4
5
deploy:
type: git
repo: git@你的服务器公网IP:/home/git/blog.git
branch: master
message:

之后重新执行

1
2
3
Hexo clean
Hexo g
Hexo deploy

最后重新运行nginx服务器即可

nginx -s reload