扳布的AI摘要
HunYuan-turbos

hexo是一个无后端的博客系统, 不像wordpress, typecho可以直接线上编写文章, 需要在本地编写md文件, 然后编译成html上传到服务器, 整个过程还是比较繁琐, 所以, 想寻找hexo写作流的最佳方案

本地Hexo环境搭建

安装必要软件

  1. 安装Git
    从Git官网下载并安装Git:https://git-scm.com/

  2. 安装Node.js
    从Node.js官网下载并安装:https://nodejs.org/
    安装后验证:

    1
    2
    node -v
    npm -v

安装和初始化Hexo

  1. 安装Hexo CLI

    1
    npm install -g hexo-cli
  2. 初始化Hexo项目

    1
    2
    3
    hexo init myblog
    cd myblog
    npm install
  3. 本地测试

    1
    hexo server

    访问 http://localhost:4000 查看博客效果。

项目结构说明

1
2
3
4
5
6
7
myblog/
├── _config.yml # 站点配置文件
├── source/ # 文章和页面
│ └── _posts/ # 文章目录
├── themes/ # 主题目录
├── scaffolds/ # 模板文件
└── public/ # 生成的静态文件

服务器环境配置(无apt工具)

由于你的服务器没有apt工具,推测可能是CentOS/RHEL系系统,使用yum包管理器。

安装必要软件

  1. 安装Node.js

    1
    2
    3
    4
    # 添加NodeSource仓库(以Node.js 14.x为例)
    curl -sL https://rpm.nodesource.com/setup_14.x | sudo -E bash -
    # 安装Node.js
    sudo yum install -y nodejs
  2. 安装Git

    1
    sudo yum install -y git
  3. 安装Nginx

    1
    sudo yum install -y nginx

配置服务器Git仓库

  1. 创建Git用户和仓库

    1
    2
    3
    4
    5
    6
    7
    sudo useradd git
    sudo passwd git # 设置密码

    su - git
    mkdir -p ~/blog.git
    cd ~/blog.git
    git init --bare
  2. 创建网站根目录

    1
    2
    3
    sudo mkdir -p /var/www/hexo
    sudo chown git:git /var/www/hexo
    sudo chmod 755 /var/www/hexo
  3. 配置Git钩子
    /home/git/blog.git/hooks/ 目录创建 post-receive 文件:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    # 切换到git用户
    su - git

    # 进入hooks目录
    cd /home/git/blog.git/hooks

    # 创建post-receive文件
    cat > post-receive << 'EOF'
    #!/bin/bash
    echo "开始部署Hexo博客..."

    # 设置路径
    GIT_DIR=/home/git/blog.git
    WORK_TREE=/var/www/hexo

    # 创建网站目录(如果不存在)
    mkdir -p $WORK_TREE

    # 检出文件到网站目录
    while read oldrev newrev refname
    do
    branch=$(git rev-parse --symbolic --abbrev-ref $refname)
    if [ "$branch" = "master" ]; then
    echo "正在部署master分支到网站目录..."
    git --work-tree=$WORK_TREE --git-dir=$GIT_DIR checkout -f $branch

    # 检查是否部署成功
    if [ $? -eq 0 ]; then
    echo "✅ 博客部署成功!"
    echo "网站文件已更新到: $WORK_TREE"

    # 显示部署的文件列表
    echo "部署的文件:"
    ls -la $WORK_TREE/ | head -10
    else
    echo "❌ 部署失败!"
    exit 1
    fi
    fi
    done
    EOF

    赋予执行权限:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    chmod +x /home/git/blog.git/hooks/post-receive

    # 将钩子文件的所有者改为git用户
    sudo chown git:git /home/git/blog.git/hooks/post-receive

    # 检查修正后的权限
    ls -la /home/git/blog.git/hooks/post-receive

    # 将整个blog.git目录的所有权交给git用户
    sudo chown -R git:git /home/git/blog.git

    # 修复网站目录权限
    sudo chown -R git:git /var/www/hexo
    sudo chmod -R 755 /var/www/hexo
  4. 配置Nginx
    编辑 /etc/nginx/nginx.conf/etc/nginx/conf.d/hexo.conf

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    server {
    listen 80;
    server_name your-domain.com; # 替换为你的域名或IP
    root /var/www/hexo;
    index index.html;

    location / {
    try_files $uri $uri/ =404;
    }
    }

    重启Nginx:

    1
    2
    sudo systemctl start nginx
    sudo systemctl enable nginx

配置Hexo多平台部署

配置GitHub Pages仓库

  1. 创建GitHub仓库

    • 仓库名格式:用户名.github.io
    • 设置为public仓库
  2. 配置SSH密钥

    1
    ssh-keygen -t rsa -C "your-email@example.com"

    将公钥id_rsa.pub内容添加到GitHub的SSH keys中。

配置Hexo部署设置

修改Hexo项目中的 _config.yml 文件:

1
2
3
4
5
6
7
8
9
# 部署配置[citation:6]
deploy:
type: git
repo:
# 服务器仓库
- git@your-server-ip:/home/git/blog.git
# GitHub仓库
- git@github.com:yourusername/yourusername.github.io.git
branch: master

这里注意, github 上的主分支可能是 main, 可以直接在配置文件修改, 也可以部署好后进入github settings中修改主分支, 网上资料也比较多

安装部署插件

1
npm install hexo-deployer-git --save

完整的写作和部署流程

日常写作流程

  1. 创建新文章

    1
    hexo new "文章标题"
  2. 编辑文章
    source/_posts/ 目录下找到对应的Markdown文件进行编辑。

  3. 本地预览

    1
    hexo clean && hexo generate && hexo server
  4. 部署到双平台

    1
    hexo clean && hexo generate && hexo deploy

访问

直接访问 用户名.github.io 或者自己的域名都可以访问博客