今日学习心得与总结

Hexo的Nginx部署

  1. 更改hexo个人博客主题,通过git clone到本地在hexo的config.yml文件的themes属性进行替换。
  2. 创建hexo标签页。刚开始搭建的时候,出来首页的博客文章,其他页面(关于,标签……)是没有的,这个时候就需要我们手动创建,每个被创建的页面下面都有对应的md文件
    1
    2
    3
    4
    5
    #注意:new后面的页面名称不是随便写的,而是在打开对应页面时,前端显示
    的名称
    hexo new about
    hexo new tags
    hexo new 404
  3. 将hexo从本地部署到Nginx,好处是不用一直将hexo进程挂在linux后台,还能允许高并发,多个用户访问,挂在本地目的是本地预览,性能很弱。hexo server是草稿纸,nginx是正式出版物。
  • 先下载Nginx dnf install -y nginx
  • 然后自己选一个目录用来存放hexo的静态文件,后续在Nginx的配置文件中可以直接访问,我创建的是/var/www/hexo
  • 然后将hexo根目录下的public目录下的文件全部copy到创建的目录下
    \cp -rf lcj/public/* /var/www/hexo #因系统设置了cp -i的别名,故在cp前加反斜杠忽略别名,否则会每次询问
  • 配置Nginx的配置文件/etc/nginx/conf.d/hexo.conf
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    server {
    listen 80; # 监听 80 端口(HTTP),若需 HTTPS 需额外配置 SSL
    server_name 你的域名或服务器IP; # 例如:blog.example.com 或 192.168.1.100

    root /var/www/hexo; # 指向 Hexo 静态文件目录

    index index.html index.htm; # 默认首页

    # 处理静态文件请求
    location / {
    try_files $uri $uri/ =404;
    }

    # 可选:配置静态文件缓存(提升访问速度)
    location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
    expires 30d; # 缓存 30 天
    add_header Cache-Control "public, max-age=2592000";
    }
    }
  • systemctl restart nginx

bash自动脚本编写

通过编写shell脚本,可以实现将繁琐重复的工作通过脚本让系统自动执行

如何编写

  1. 脚本的形式有很多种
  • sh 是最早的版本,语法简洁功能基础
  • Ksh 结合了bash和sh的特性,支持高级编程结构,兼容性强,性能稳定
  • Zsh 功能比bash丰富,支持智能补全,主题定制,插件扩展
  1. 今天我们学的是bash脚本。以’.sh’为结尾的文件,开头必须要标记#!/bin/bash,里面可以编写linux命令,或者一些语句。

范文

这个bash脚本是用来自动打包hexo文章并copy到nginx配置下,打到自动部署的效果。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/bin/bash

# 脚本说明
# 文件名:blogAutoPack.sh
# 作者:博客文章自动打包上传Nginx
# 作者:学员姓名
# 日期:20251022

BLOG_DIR="/root/lcj/public/*"
WEB_DIR="/var/www/hexo"

cd /root/lcj
hexo g
\cp -rf $BLOG_DIR $WEB_DIR

文章中图片的添加

先在hexo的根目录配置文件_config.yml中设置 post_asset_folder: true,这是开启资源目录,这个配置成permalink: :title/,此后当创建文章时会自动创建一个和文章名称相同的目录,然后将图片放到里面

然后就可以在文件中添加,格式:![图片](test/test.png)

遇到的问题

图片

  1. 在变量的赋值时,等号两边有空格导致系统认为在执行命令,所以在执行脚本报错
  2. 执行if判断‘BLOG_DIR’时报错有语法错误。因为该变量带有通配符*,无法正确判断目录存在性

革命尚未成功,同志还需努力!