用宝塔面板将hexo博客部署到阿里云服务器

前言

起因是阿里云给我发来邮件,如果我的域名解析没有指向服务器IP且IP地址上没有访问记录,我的域名备案就要被撤销。于是决定把博客部署到阿里云,并且把域名解析到阿里云服务器。

原本是想纯命令行把博客搭好,因为可参考的资料大多零零碎碎,折腾了好久没能成功,最终放弃命令行。后来使用宝塔面板很快就搭好了。这里放出我迁移过程中参考的博客 一步步带你搭建远程服务器的git仓库,并将自己的博客部署到服务器上

这篇文章就是教你用宝塔面板将hexo博客部署到云服务器。

准备工作

用Hexo在本地搭建你的博客

注意是在本地!!!

这里主要可以参考我之前的文章用hexo+Github Pages搭建一个静态博客

需要注意的是需要把域名解析到云服务器IP,所以要将域名与GitHub Pages的绑定解开。

  • 将你的博客仓库<GitHub用户名>.github.io中的CNAME文件删除
  • 在域名的DNS管理中删除Github Pages的IP地址记录

准备宝塔面板

如果你是阿里云用户:

  • 将你的系统镜像更改为宝塔面板(BT-PANEL)
  • 在防火墙端口开放如下端口:8888,80,3306,8080
  • http://<服务器ip>:8888 为你的宝塔控制面板地址
  • 输入如下命令查看宝塔的默认密码,(默认管理员账号为:admin)
1
sudo cat /www/server/panel/dafault.pl

如果你是其他用户:

开始配置

ssh连接远程服务器

  • 打开Windows PowerShell
1
ssh root@你的IP地址
  • 应该会提示创建密钥,一路回车就行

  • 然后输入root用户的密码,出现下图就表示连接成功

    1
    2
    3
    4
    5
    Welcome to Alibaba Cloud Elastic Compute Service !



    [root@xxxxxxxxxxxxxxxxx ~]# _

在服务器端

安装git

输入git --version,若出现版本号则表明git已安装完毕,若无则需按照下文安装

  • Ubuntu用户:

    1
    sudo spt-get install git
  • Centos用户:

    1
    yum install -y git

配置git仓库

root用户下输入以下代码:(#后的内容为注释)

1
2
3
4
5
6
7
8
useradd git		#创建用户git
passwd git #为用户git设置密码
chmod 740 /etc/sudoers #修改文件的权限以便做出修改
vim /etc/sudoers #打开编辑器
# 找到 root ALL=(ALL) ALL
# 在下面添加一行 git ALL=(ALL) ALL
#输入 :wq 即可保存并退出编辑器
chmod 400 /etc/sudoers #改回文件的权限

然后进入git用户:

1
2
3
4
5
6
7
8
su git		#切换至git用户,这步很重要
sudo mkdir -p /www/wwwroot/blog #把博客目录放在宝塔网站的根目录下
cd /home/git
mkdir repos
cd repos
git init --bare blog.git #创建一个裸库blog.git
cd blog.git/hooks
vim post-receive #创建hook钩子函数

输入以下内容:

1
2
3
#!bin/bash
git --work-tree=/www/wwwroot/blog --git-dir=/home/git/repos/blog.git checkout -f
#git --work-tree=/博客根目录 --git-dir=/git仓库目录 checkout -f

保存退出后修改文件权限使之可以被执行

1
2
3
chmod +x post-receive
exit #回到root用户
chown -R git:git /home/git/repos/blog.git #赋予git用户可操作仓库blog.git的权限

在本地端

免密远程连接服务器

任意处打开Git Bash

1
2
ssh-copy-id -i C:/Users/你的用户名/.ssh/id_rsa.pub git@服务器IP
ssh git@你的服务器ip #测试能否成功免密远程连接

此时远程连接应该不需要密码!!!

如果仍需要密码,请仔细检查步骤

如果有报错,请把错误提示放到Google上搜索解决方案

宝塔面板设置

这个参考教程

Hexo配置文件设置

  • 打开站点配置目录

  • 按照下面的代码修改:

    1
    2
    3
    4
    5
    6
    deploy:
    type: git
    repository:
    github: #这里是你的github.io页面地址
    server: git@服务器IP:/home/git/repos/blog.git
    branch: master

然后就可以将hexo博客部署到远程服务器上了

1
2
hexo cl
hexo g -d

后记

  • 之前纯用命令行总是有奇奇怪怪的路径错误,硬耗了一星期,最终放弃
  • 虽然用命令行最终还是重置系统回到起点,但总归还是把基本的Linux命令全部敲过了一遍
  • 这也算是无形中把Linux基本操作学完了XD
  • 宝塔真香,一个多小时就解决了问题
  • Google更香,不得不说Google绝对是我的福音书
  • 折腾的心开始蠢蠢欲动,也许折腾之路又要开始了