将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
vim blog.conf
编写blog.conf的内容
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作为支持
输入命令
//安装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
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 balabali…
就成功了
六.创建git仓库
在服务器端 创建git仓库,输入命令
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,之后我会再更新,敬请关注!)
deploy:
type: git
repo: git@你的服务器公网IP:/home/git/blog.git
branch: master
message:
之后重新执行
Hexo clean
Hexo g
Hexo deploy
最后重新运行nginx服务器即可
nginx -s reload
我的blog地址 https://bagbean.cn 欢迎大家访问嗷!