使用Hexo搭建自己的博客(四)发布到 阿里云
前言
生命在于无限折腾,好不容易才搭好自己的博客网站,提交到了 Github 让别人也能欣赏到(づ。◕‿‿◕。)づ,现在嘛,我又开始嫌弃 Github 访问太慢了,首页精挑细选了好久的精美图片总是加载不出来,这怎么行,必须安排!
和 Github 一样,想 Gitee 等一些国内的代码仓库也提供了 Pages 给用户搭建静态网站,和发布到 Github 上都差不多,感兴趣的可以自己去了解一下。但是,这些方式提供的空间都是有限制的,如果你的博客越写越多,内容越来越多就会超出空间大小(是个远大的目标╮( ̄▽ ̄)╭),这些都不是重点,我就是要折腾,于是我选择租一台云服务器作为自己的博客服务器。
服务器配置
服务器这边我们还是推荐 阿里云 的哦,个人博客建站的服务器新用户第一年一折,如果你暂时还不想租用服务器,只想折腾实践一下,你也可以尝试 30 天的免费试用,也足够使用了。
配置安全组
首先,在租好服务器后第一步就是配置安全组,因为阿里云服务器默认是不授权80端口访问的,所以我们需要手动配置。
按照顺序点击配置规则
,进入后点击手动添加,添加80端口准入。
之后还需要返回上一级菜单,点击 配置规则
旁边的 管理实例
把你刚才购买的服务器添加到安全组中,这样从外部你就可以访问到这台服务器了。
实例列表里面后面有 公 字的就是公网的 IP,你现在已经可以 ping
通这个 IP 了。
ping
通 IP 之后我们就需要连接上这台服务器了,现在直接通过 ssh root@ipaddress
是连接不上去的,你需要在阿里服务后台配置好 ssh
的密钥:
在 网络与安全 模块选择 密钥对 ,创建密钥对 ,在这里你可以选择使用本地已有的密钥,或者让阿里云为你自动创建新的密钥,创建完之后,通过 绑定密钥对 将密钥绑定到之前创建的服务器上,这样你就能通过 ssh root@idaddress
连接到服务器了。
要注意的是,阿里云的服务器每台只能绑定一个密钥对。
配置服务器环境
配置 Nginx
在这里我们需要 nginx 来搭建我们的服务器,通过 ssh
连接到服务器之后,我们可以使用 yum
命令来进行安装:
1 | # 安装 nginx |
现在,我们就可以用我们的电脑去访问上面获取到的 公网IP,你会看到下面这样的 nginx
默认页面,说明我们的 nginx
配置成功了。
当然,这并不是我们想要的,我们需要 nginx
指向我们的博客,所以继续做以下配置:
- 因为阿里云的服务器root用户只能配置一个密钥用于登录,也就是说,在家和公司之间,你只能选择一个来登录你的服务器,同样的,你只能从中二选一来进行你的创作,为了解决这个问题,我们需要新建一个用户来管理。
1 | # 新建名称为 git 的用户 |
- 创建完用户之后,会在
/home
目录下生成用户文件夹/home/git
,接下来我们切换到用户git
并配置ssh
密钥:
1 | # 切换到 git 用户 |
- 添加完公钥后,就能通过
ssh git@ipaddress
连接服务器了。
接下来,我们开始正式配置
nginx
:1
2
3
4
5
6
7
8# 切换到 git 用户
su git
# 切换到用户目录
cd ~
# 创建目录
mkdir blogwebsite
# 退出到 root 用户
exit移动到
nginx
的默认配置路径,并且新建一个文件夹作为我们博客的配置文件,在这里我新建了一个blog
文件夹;1
2
3
4
5
6# 移动到 nginx 配置路径
cd /etc/nginx
# 创建文件夹
mkdir blog
# 移动到 blog 文件夹中
cd blog新建一个配置文件
blog.conf
并编辑:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18# 创建配置文件 blog.conf
vim blog.conf
# 在配置文件中添加配置
server{
listen 80;
root /home/git/blogwebsite; ## 这里是博客存放的路径
server_name xxx.xxx.xxx.xxx; ## 这里是博客的域名,没有域名可以先用公网 ip
location /{
}
}
## 如果监听多个域名可以添加在下方
server{
listen 80;
root /home/git/blogwebsite; ## 这里是博客存放的路径
server_name xxx.xxx.xxx.xxx; ## 这里是博客的域名,没有域名可以先用公网 ip
location /{
}
}修改
nginx
配置文件:1
2# 编辑 nginx 的默认配置文件
vi /etc/nginx/nginx.conf
到这里,我们已经把 nginx
和我们的博客路径关联起来了,当然,现在博客路径里面还什么都没有。
配置 Node.js & GIT
首先,我们需要安装 Node.js,按照 Hexo 给我们推荐的,这里我们安装
10.x
以上的版本:1
2
3
4
5
6# 指定 10 以上版本
curl --silent --location https://rpm.nodesource.com/setup_10.x | sudo bash -
# 安装 node.js
yum install -y nodejs
# 安装完成后执行命令可以打印出版本号
node -v安装 Git
1
2# 执行命令安装 git
yum install git
到这,服务端的环境就配置完成了,现在只剩下博客网站相关的设置了。
配置 Git 仓库
现在,我们需要为我们的博客创建一个 Git 仓库,这样我们就能像提交到 Github 仓库一样,把网站提交到我们的服务器。
1
2
3
4
5
6
7
8
9
10
11
12
# 为了能够多处提交,我们切换到 git 用户
su git
# 移动到当前用户路径
cd ~
# 初始化 Git
git init --bare blog.git
# 编辑 post-receive 文件
vi blog.git/hooks/post-receive
# 添加以下内容 博客网站路径 .git 路径
git --work-tree=/home/git/blogwebsite --git-dir=/home/git/blog.git checkout -f
# :wq 保存后,为 post-receive 添加可执行权限
chmod +x blog.git/hooks/post-receive
到这里,我们已经完成了服务器的所有配置。
本地配置
配置完服务器之后,我们需要修改本地配置文件 _config.yml
中的发布相关配置:
1
2
3
4
5
6
deploy:
type: git
## 这里我们要使用 git@ 来登录 git 用户,因为 root 用户只能在一台电脑上登录
repo: git@这里改为服务器公网IP:/home/git/blog.git ## .git文件夹路径
branch: master
message:
最后,hexo clean && hexo g --deploy
执行完成,你就可以通过 公网IP 访问到你的博客了。