将 Hexo 博客部署到云服务器

本文提供了详细的步骤指南,教您如何配置腾讯云轻量云服务器,以搭建个人博客。教程首先介绍了如何通过 SSH 连接和设置服务器,包括编辑 SSH 配置文件、添加用户并赋予管理员权限。接着,读者将学习如何安装 Git 并创建一个 Git 仓库,用于版本控制和代码管理。随后,文章指导用户安装 Apache2 服务器程序,并配置 Git 钩子,以便在代码推送时自动更新网站内容。最后,读者将配置 Hexo 博客并进行部署,使其能够在新搭建的服务器上运行。通过这些步骤,您可以轻松搭建一个高效的博客平台。

  ·   2 min read

本教程将手把手进行配置云服务器。以腾讯云服务器为例,首先购买一个轻量云服务器。

SSH 连接

重置服务器

重置购买的服务器,这里选择 Ubuntu 20.04 LTS 镜像。可选择性地跳过此步骤。

点击登陆打开网页终端。

编辑 SSH 配置文件

sudo vim /etc/ssh/sshd_config

更改以下内容:

PermitRootLogin yes
PasswordAuthentication yes

重启 SSH 服务:

sudo service ssh restart

添加用户并登陆

为自己添加一个用户:

sudo adduser 用户名

输入密码(不会显示):

New password: 
Retype new password: 
passwd: password updated successfully

Changing the user information for wuhaonan:

Enter the new value, or press ENTER for the default
    Full Name []: 
    Room Number []: 
    Work Phone []: 
    Home Phone []: 
    Other []: 
Is the information correct? [Y/n] y

给予用户管理员权限:

sudo visudo

找到 root ALL=(ALL) ALL,在下面添加一行:

用户名 ALL=(ALL) ALL

在本地使用用户名密码登陆:

ssh 用户名@服务器地址

此方法在每次进行部署时都需要输入密码,配置 SSH 密钥登陆可以免去输入密码的步骤,可以参考《SSH 密钥连接 Linux 服务器》。

服务器环境配置

搭建 Git 仓库

安装 Git:

sudo apt install git
git --version

创建用户 git:

sudo adduser git

切换到 git 用户:

su git

创建 Git 仓库:blog.git

cd ~
mkdir repo
cd repo
git init --bare blog.git

接着可以将仓库克隆到本地:

git clone git@服务器地址:/home/git/repo/blog.git

安装服务器程序

安装一个服务器程序,以 Apache2 为例。在 SSH 终端中使用 control + D 退出 git 用户,安装 apache2:

sudo apt install apache2

在浏览器中输入服务器的 IP 地址可以看到 apache2 程序的默认界面。

服务器的根目录位于 /var/www/html 目录,目录下有一个 index.html 文件,就是所看到的 Apache2 的默认程序界面。若要修改服务器程序的根目录,可以修改配置文件 /etc/apache2/sites-enabled/000-default.conf 更改其中的 DocumentRoot 项即可。

只需要将博客拷贝到该目录,就可以运行了。

配置 Git 钩子

在这里需要配置 Git 钩子。和其它版本控制系统一样,Git 能在特定的重要动作发生时触发自定义脚本。有两组这样的钩子:客户端的和服务器端的。客户端钩子由诸如提交和合并这样的操作所调用,而服务器端钩子作用于诸如接收被推送的提交这样的联网操作。

关于 Git 钩子,可以参考 Git 的官方文档。

我们需要做的,是在服务器端的 Git 仓库接收到新的 push 的时候,将仓库内容复制到服务器目录下,所以我们需要配置 post-receive 钩子。

vim /home/git/repo/blog.git/hooks/post-receive

粘贴以下内容:

#!/bin/bash
git --work-tree=/var/www/html --git-dir=/home/git/repo/blog.git checkout -f

使用 :wq 命令退出 vim。

加上权限:

sudo chmod +x /home/git/repo/blog.git/hooks/post-receive

为了使网站根目录可以被钩子修改,加上权限:

sudo chmod -R 777 /var/www/html

配置本地 Hexo

在配置好的 Hexo 环境中,打开网站配置文件 _config.yml,加入以下内容。

Hexo 博客的配置可以参考《使用 Hexo 和 GitHub 搭建自己的个人博客平台》。

# Deployment
## Docs: https://hexo.io/docs/one-command-deployment
deploy:
  type: git
  repo: git@服务器地址:/home/git/repo/blog.git
  branch: master
  message: 'hexo commit'

部署博客

hexo g
hexo d