Hexo 部署至服务器

本文最后更新于 2023年12月15日 09:20

上篇已经介绍了如何上自己的博客部署在 Github Pages 上 ,但是访问速度比较慢

有条件的小伙伴可以 参考此篇文档,将自己的博客部署在服务器上

一. Git安装

  • 安装git

    1
    yum install git

    image.png

  • 查看git版本(验证是否安装成功)
    image.png

二. Git配置

  • 添加git用户
1
adduser git
  • 改写权限

    1
    chmod 740 /etc/sudoers
  • 权限配置

    1
    vim /etc/sudoers
  • i 键进入文件的编辑模式,按方向下键找到找到root下添加以下信息

    1
    git   ALL=(ALL)     ALL

    image.png

  • 按 esc 键退出编辑模式,输入 :wq 回车 保存退出

  • 改回权限

    1
    chmod 400 /etc/sudoers
  • 设置git账号的密码(按提示输入密码即可,密码是不显示的)

    1
    sudo passwd git

    这里设置密码为111111
    image.png

  • 切换git用户

    1
    su git
  • 创建 .ssh 文件夹

    1
    mkdir ~/.ssh

    image.png

  • 创建并编辑 authorized_keys 文件,将你本地git的SSH密钥复制粘贴进去( 按 i 键进入文件的编辑模式,将密钥粘贴进去,再按 esc 键退出编辑模式,输入 :wq 回车 保存退出)

    1
    vim ~/.ssh/authorized_keys

    image.png

  • 不知道密钥在哪,可以参考我的上篇部署至 github pages 的文章

  • 赋予权限

1
chmod 600 /home/git/.ssh/authorized_keys
1
chmod 700 /home/git/.ssh
  • 测试本地连接服务器
    1
    ssh -v git@ip地址
  • 如图就证明本地连通服务器了
    image.png

三. 创建git仓库

  • 切换到root用户
    1
    su root
  • 创建用于存储网站的根目录
    1
    mkdir /home/hexo
    image.png
  • 赋予权限
    1
    chown git:git -R /home/hexo
  • 新建并初始化一个git仓库
    1
    2
    cd /home/git
    git init --bare blog.git
  • 修改权限
    1
    chown git:git -R blog.git
    /home/hexo/blog.git 下,有一个自动生成的 hooks 文件夹,我们在该文件夹下新建一个新的钩子文件 post-receive ,用于自动部署
1
vim blog.git/hooks/post-receive
  • i 键进入文件的编辑模式,添加下面两行代码,用于指定git执行目录
    1
    2
    #!/bin/bash 
    git --work-tree=/home/hexo --git-dir=/home/git/blog.git checkout -f
  • 按 esc 键退出编辑模式,输入 :wq 回车 保存退出
    image.png
  • 修改文件权限,让这个钩子文件可执行

配置本地Hexo,构建至服务器

  • 本地打开hexo根目录中_config.yml文件,进行相关配置,具体配置在文件内最底部

    1
    2
    3
    4
    5
    6
    deploy:
    type: git
    #git@ip地址(或域名):/仓库地址
    repo: git@xxxx:/home/git/blog.git
    #分支
    branch: master
  • 配置如图
    image.png

四. 安装配置 Nginx

1.下载并安装nginx

1
yum install -y nginx

image.png
启动服务

1
systemctl start nginx.service

配置 Nginx

使用 nginx -t 命令查看位置,一般为 /etc/nginx/nginx.conf
使用 vim /etc/nginx/nginx.conf 命令进行编辑,修改配置文件如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name yelin.fun; # 修改为自己的域名 ,我这里放了我的公网IP
root /home/hexo; # 修改为网站的根目录

# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;

location / {
}

error_page 404 /404.html;
location = /40x.html {
}

error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}

image.png

重启 Nginx 服务

1
systemctl restart nginx.service

五、部署

  • 清理缓存
    1
    hexo clean
  • 构建部署
    1
    hexo g -d
  • 执行完命令,会提示输入服务器密码,输入完密码 回车 如下图就说明成功了
    或者一条命令即可
    1
    hexo clean && hexo g && hexo d
    image.png

六. 配置完成

  • 配置已完成,配合nginx访问看看有没有成功
    image.png

Hexo 部署至服务器
http://example.com/posts/9b88edda/
作者
帅蛋同学_
发布于
2023年12月15日 00:00
更新于
2023年12月15日 09:20
许可协议