Hexo 部署到服务器

安装一些工具

1
$yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel

安装 Git

  • 先看看有没有装

    1
    $git --verison
    • 没有安装

      image-20230515170935888
    • 安装过了

      image-20230515171050541
  • 没有安装的执行

    1
    $yum install -y git

创建上传&管理代码的用户

  • 创建一个用户用来上传代码(用户名什么都行,这里以 macadmin 为例)

    1
    2
    $useradd macadmin
    $passwd macadmin
image-20230515171637152

给网站管理用户添加权限

  • 修改权限

    1
    $chmod 740 /etc/sudoers
  • 修改文件

    1
    $vim /etc/sudoers
  • 大约100行后添加

    image-20230515172346740
  • 修改保存后修改权限

    1
    $chmod 600 /etc/sudoers

创建存放 Hexo 工程的文件夹并赋予权限

  • 创建存放 Hexo 工程的文件夹(根据自己需要创建)

    1
    $mkdir /home/hexo
  • 赋予权限

    1
    $chown macadmin:macadmin -R /home/hexo

安装 Nginx

  • 安装 Nginx

    1
    $yum install -y nginx 
  • 启动一下看看有没有安装成功

    1
    $systemctl start nginx.service
    • 使用 IP 访问服务器出现下面这张图就是安装成功了

      image-20230515173457803

配置 Nginx

  • 修改配置文件

    1
    $vim /etc/nginx/nginx.conf
    image-20230515174018964
  • 要是使用 SSL,用这个替换原来的

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    server{
    listen 80;
    server_name ceshi123.top;
    rewrite ^(.*)$ https://$host$1 permanent; # http转https
    }
    server{
    listen 443 ssl;
    root /home/hexo;
    server_name ceshi123.top; # 请替换为你的域名
    client_max_body_size 40m; # 请求体上限
    # ssl的一些配置
    ssl_certificate "/home/ssl/hexo_ssl/ceshi123.top.crt"; # 请务必替换成你的ssl证书路径
    ssl_certificate_key "/home/ssl/hexo_ssl/ceshi123.top.key"; # 请务必替换成你的ssl证书路径
    ssl_protocols TLSv1.1 TLSv1.2;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;

    error_page 404 /404.html;
    error_page 500 502 503 504 /50x.html;
    }
  • 最后保存退出并重启 Nginx

    1
    $systemctl reload nginx.service

创建 Git 仓库

1
2
3
4
$su root
$cd /home/hexo
$git init --bare blog.git
$chown macadmin:macadmin -R blog.git

编辑 post-receive

  • 跳转到 blog.git 下的 hooks 文件夹

    1
    $cd /home/hexo/blog.git/hooks
  • 编辑

    1
    $vim post-receive
  • 把这个放进去

    1
    2
    #!/bin/sh
    git --work-tree=/home/hexo --git-dir=/home/hexo/blog.git checkout -f
  • 修改权限

    1
    $chmod +x post-receive
  • 开放 80 端口(配置 SSL 证书的需要开放443端口)

    1
    2
    3
    $systemctl start firewalld.service
    $firewall-cmd --permanent --zone=public --add-port=80/tcp
    $firewall-cmd --reload

修改 Hexo(_config.yml)

  • image-20230515181605512

推送

1
$hexo clean && hexo g && hexo -d