AI正在绞尽脑汁想思路ING···
BiのAI摘要
HunYuan-Lite

# 前提条件

在开始之前，请确保你已满足以下条件：

- 服务器:
  - 安装了 1Panel 面板的 Linux 服务器
  - 拥有服务器的 SSH 访问权限（本文示例将使用 root 用户，你可以根据实际情况替换为其他有权限的用户）。
  - 服务器上已安装 Git。
- 1Panel 配置:

已通过 1Panel 创建了一个网站（例如 `blog.yourdomain.com`），并记下该网站的 根目录（`Document Root`）。通常在 1Panel 中，路径类似于 `/opt/1panel/apps/openresty/openresty/www/sites/你的网站目录/index`。请务必替换为你的实际路径。
本地环境:

- 你的电脑上已安装并配置好 Hexo 博客环境。
- 你的电脑上已安装 Git。
- 已安装 Hexo Git 部署插件：

    1
    npm install hexo-deployer-git --save

SSH 密钥认证 (关键):

1. 你需要在本地电脑生成 SSH 密钥对（如果还没有的话）。
2. 必须将你的本地电脑的 SSH 公钥 添加到服务器上对应用户（如 root）的 ~/.ssh/authorized_keys 文件中。这样可以确保 hexo deploy 时 Git PUSH 操作无需输入密码即可完成。
   配置步骤
   步骤一：在服务器上安装 Git
   如果你的服务器尚未安装 Git，请根据你的 Linux 发行版执行相应命令：

Debian/Ubuntu:

    1
    2
    sudo apt-get update
    sudo apt-get install git -y

Fedora/RedHat/CentOS:

    1
    sudo yum install git -y

步骤二：在服务器上创建 Git 裸仓库 (Bare Repository)
我们需要在服务器上创建一个 Git “裸仓库”。裸仓库不包含工作目录（即你看不到项目文件），只存储 Git 的版本历史和对象数据，非常适合作为中心仓库或中转仓库。

创建仓库目录:
选择一个路径来存放你的 Git 仓库。例如，我们选择放在 /root/git/ 目录下（你可以自定义路径）。

# 创建目录 (如果父目录不存在，也一并创建)

    1
    mkdir -p /root/git/

修改目录权限 (可选但推荐):
如果你不是一直使用 root 用户，或者希望更精细地控制权限，可以修改目录所有者和权限。如果使用 root，此步通常可以跳过。

将目录所有者改为当前用户 (如果用 root 执行，则为 root)

    1
    chown -R USER:USER:USER /root/git/

设置权限 (所有者完全控制，同组用户读取执行，其他用户读取执行)

    1
    chmod -R 755 /root/git/

初始化裸仓库:
进入你选择的目录，并初始化一个裸仓库。我们将仓库命名为 blog.git (你也可以自定义)。

    1
    2
    cd /root/git
    git init --bare blog.git

执行后，你会在 /root/git/ 目录下看到一个名为 blog.git 的文件夹。

步骤三：在服务器上配置 Git 钩子 (post-receive)
Git 钩子是在 Git 操作过程中的特定时间点自动执行的脚本。post-receive 钩子在服务器成功接收到推送 (push) 后执行。我们将利用这个钩子将推送过来的 Hexo 文件检出 (checkout) 到 1Panel 的网站根目录。

创建钩子文件:
进入裸仓库的 hooks 目录，并创建一个名为 post-receive 的文件。

    1
    vim /root/git/blog.git/hooks/post-receive

编辑钩子内容:
在 vim 编辑器中，按 i 进入插入模式，然后粘贴以下脚本内容：

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #!/bin/bash
    # 指定 Hexo 网站文件存放的目录 (!!!!务必替换为你的 1Panel 网站实际根目录!!!!)
    WORK_TREE="/opt/1panel/apps/openresty/openresty/www/sites/blog/index"
    # 指定 Git 裸仓库的路径 (!!!!务必替换为你的裸仓库实际路径!!!!)
    GIT_DIR="/root/git/blog.git"

    # 执行 Git checkout 命令，强制将内容检出到工作目录
    git --work-tree=${WORK_TREE} --git-dir=${GIT_DIR} checkout -f

    echo "Hexo blog deployed to ${WORK_TREE}"

# 可选的提交信息

请务必修改:

`root`: 替换为你配置了 SSH 免密登录的服务器用户名。
`YOUR_SERVER_IP`: 替换为你的服务器公网 IP 地址或域名。
`22`: 如果你的 SSH 端口不是默认的 22，请修改。
`/root/git/blog.git`: 替换为你在服务器上创建的裸仓库的 绝对路径。
`branch`: 确保这个分支名 (main 或 master) 与你的 post-receive 钩子期望检出的分支一致（默认情况下 checkout -f 会检出仓库的 HEAD 指向的分支，通常是 master 或 main）。
步骤五：部署你的 Hexo 博客
一切配置完成后，部署就非常简单了：

在本地 Hexo 项目目录下，执行标准的生成和部署命令：

    1
    hexo clean && hexo generate && hexo deploy

或者直接：

    1
    hexo d

工作流程:

hexo g 生成静态文件到 public 目录。
hexo d 使用 hexo-deployer-git 插件：
将 public 目录的内容提交到一个临时 Git 分支。
通过 SSH 将这个分支强制推送到你配置的服务器裸仓库 (ssh://root@YOUR_SERVER_IP:22/root/git/blog.git)。
服务器上的 Git 仓库接收到推送后，自动触发 post-receive 钩子脚本。
钩子脚本执行 git checkout -f，将最新的网站文件强制检出（部署）到 1Panel 网站的根目录 (/opt/1panel/apps/openresty/openresty/www/sites/blog/index)。
验证:
部署命令执行成功后，稍等片刻，然后访问你的博客域名 (http://blog.yourdomain.com 或 https://blog.yourdomain.com)，应该就能看到更新后的内容了。

# 故障排除提示

- 权限问题: 检查服务器上 Git 仓库目录、网站根目录以及钩子文件的权限是否正确。钩子脚本需要有权限写入网站根目录。
- SSH 密钥问题: 确保本地 SSH 公钥已正确添加到服务器的 authorized_keys 文件中，并且本地 SSH 私钥可用。尝试手动 ssh root@YOUR_SERVER_IP 看是否能免密登录。
- 路径错误: 仔细核对 post-receive 脚本中的 –work-tree 和 –git-dir 路径，以及本地 _config.yml 中的 repo 路径是否完全正确。
- 钩子未执行: 检查钩子文件是否有执行权限 (chmod +x)，文件名是否精确为 post-receive (没有扩展名)。
- 查看日志: 如果部署失败，可以尝试在服务器上查看 SSH 或 Git 相关日志，或者在钩子脚本中添加一些 echo 输出到日志文件来调试。
- 通过以上配置，你就实现了一个高效、自动化的 Hexo 博客部署流程！

文章作者: biss
文章链接: https://blog.biss.click/posts/6e5f5039/
版权声明: 本博客所有文章除特别声明外，均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Bi's Blog！
网站
相关推荐
2025-08-10
配置说说页面
又开始折腾啦，这次把说说页面加上，改用moments项目的api 🪧引用站外地址，不保证站点的可用性和安全性 Moments 极简朋友圈 githun@kingwrcy 前期要求硬件要求 一台服务器 一个可自主解析的域名 软件要求 docker环境 反向代理工具（本文以Nginx为例） 介绍与展示这里先给大家展示一下最终的效果，注意该教程可能仅适合部分主题，如果出现主题不适配的情况请自行适配，这里以本站主题 Hexo-theme-butterfly为基础进行修改： 说说页面： ✅来自本站，本站可确保其安全性，请放心点击跳转 我的说说 胡言乱语ing。。。 轻量朋友圈 🪧引用站外地址，不保证站点的可用性和安全性 ...
2025-08-25
为博客添加CMS系统
序言因为喜欢wordpress之类动态博客的在线编辑功能，但是又不想抛弃hexo，特别是这个花里胡哨的模板，所以想着给博客添加一个cms系统，在搜索一番后发现这种CMS系统叫无头CMS，然后找到一个很好的系统：sveltia-cms 🪧引用站外地址，不保证站点的可用性和安全性 sveltia-cms sveltia 安装安装包在博客根目录下运行npm i @sveltia/cms 创建必要文件然后在博客source目录下创建admin目录并在其下新建index.html 123456789101112<!doctype html><html><head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, init...
2026-01-16
在侧边栏添加日历和倒计时
突然看到某个网站侧边栏有日历和倒计时，就研究了一下，抄下来了（🤭）效果图： 添加js123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111document.addEventListener("DOMContentLoaded", () => { initializeCard();});document.addEventListener("pjax:complete", () => { initializeCard();});function initializeCard() ...
2026-02-10
添加网站左上角菜单
看到柳神的网站有这种菜单，但是没有写魔改教程，只好自己慢慢摸索了。 🪧引用站外地址，不保证站点的可用性和安全性 liushen liushen 预计做好后是这种效果： 首先，修改\themes\butterfly\layout\includes\header\nav.pug: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051nav#nav //- 左侧区域：包含指纹菜单和网站名 span#blog-info #ls-menu-container i.fas.fa-fingerprint #ls-menu-panel .ls-section .ls-title 😀 个人网站 .ls-grid ...
2025-08-14
自定义页脚（新）
添加CSS修改有风险，注意备份 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196...
2025-08-12
利用插件自定义页脚菜单
安装安装插件,在博客根目录[Blogroot]下打开终端，运行以下指令： 1npm install hexo-butterfly-footer-marcus --save 如果需要随机友链接的话,再运行以下指令： 1npm i yamljs --save 添加配置信息以下为写法示例 在站点配置文件_config.yml或者主题配置文件_config.butterfly.yml中添加 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613...

评论
biss
文章
34
标签
11
分类
5
Follow Me
公告
最新文章
opencv基础操作 2026-03-15
配置opencv 2026-03-14
自建bitwarden服务 2026-02-25
自建renovate-bot 2026-02-23
新年快乐！2026-02-14
随便逛逛昼夜切换繁简转换阅读模式隐私声明 Cookie协议版权声明