Hexo搭建教程

|--------------------------------------|---------------|
| 操作系统 | nodejs |
| CentOS Linux release 7.9.2009 (Core) | node-v16.20.2 |

nodejs安装

复制代码
#1. 下载 Node.js 16 的二进制包
wget https://nodejs.org/dist/v16.20.2/node-v16.20.2-linux-x64.tar.xz

#2. 解压并安装
tar -xvf node-v16.20.2-linux-x64.tar.xz
mv node-v16.20.2-linux-x64 /usr/local/node

#3. 添加环境变量
echo 'export PATH=/usr/local/node/bin:$PATH' > /etc/profile.d/nodejs.sh
source /etc/profile.d/nodejs.sh

#4. 验证
node -v

安装git

复制代码
# CentOS 7/8/Stream 通用
yum install -y git

# 验证
git --version

宝塔安装

复制代码
url=https://download.bt.cn/install/install_panel.sh;if [ -f /usr/bin/curl ];then curl -sSO $url;else wget -O install_panel.sh $url;fi;bash install_panel.sh ssl251104

hexo部署

复制代码
# 全局安装 Hexo
npm install -g hexo-cli

# 验证
hexo -v
复制代码
# 进入宝塔默认网站目录
cd /www/wwwroot

# 创建博客文件夹并初始化
hexo init myblog
cd myblog

# 安装依赖
npm install

# 生成静态页面(会在 myblog 下创建 public 文件夹)
hexo generate

#修改权限给宝塔
chown -R www:www /www/wwwroot/myblog

宝塔面板配置

添加站点
  • 宝塔 → 网站 → 添加站点
  • 域名:你的域名(或服务器 IP)
  • 根目录/www/wwwroot/myblog/public(⚠️ 必须是 public 子目录
  • PHP 版本:纯静态
访问测试
  • 浏览器访问你的域名,应该能看到 Hexo 默认页面

安知鱼主题部署

复制代码
cd /www/wwwroot/myblog/themes
git clone https://github.com/next-theme/hexo-theme-next.git
复制代码
# 编辑站点配置文件
vim /www/wwwroot/myblog/_config.yml

找到 theme: 这一行(大概在底部),改为:

复制代码
theme: next
# 原来的 landscape 可以注释掉或删掉
保存退出(:wq)

安装主题依赖并生成

复制代码
cd /www/wwwroot/myblog

# 安装主题可能需要的依赖
npm install

# 清理缓存并重新生成(必须执行)
hexo clean
hexo generate

# 修正权限
chown -R www:www /www/wwwroot/myblog/public

hexo clean的过程中会出现由于.user.ini被锁定,导致删除不掉

复制代码
# 1. 解锁 .user.ini(必须!)
chattr -i /www/wwwroot/myblog/public/.user.ini

# 2. 现在可以成功 clean 了
hexo clean

# 3. 重新生成
hexo generate

注意:如果Pug 模板没有被渲染 ,浏览器直接显示了 Pug 源码。说明 hexo-renderer-pug 没有正常工作。

复制代码
cd /www/wwwroot/myblog

# 1. 强制重新安装 Pug 渲染器(关键!)
npm uninstall hexo-renderer-pug
npm install hexo-renderer-pug --save

# 2. 同时确保 Stylus 渲染器也安装
npm install hexo-renderer-stylus --save

# 3. 清理并重新生成
hexo clean
hexo generate

最后刷新网站主题就切换成功了

相关推荐
一直不明飞行1 天前
Java的equals(),hashCode()应该在什么时候重写
java·开发语言·jvm
REDcker1 天前
有限状态机与状态模式详解 FSM建模Java状态模式与C++表驱动模板实践
java·c++·状态模式
你的保护色1 天前
【无标题】
java·服务器·网络
basketball6161 天前
C++ 构造函数完全指南:从入门到进阶
java·开发语言·c++
淘矿人1 天前
Claude辅助DevOps实践
java·大数据·运维·人工智能·算法·bug·devops
小江的记录本1 天前
【Java基础】泛型:泛型擦除、通配符、上下界限定(附《思维导图》+《面试高频考点清单》)
java·数据结构·后端·mysql·spring·面试·职场和发展
来恩10031 天前
请求转发与响应重定向的使用
java
@杰克成1 天前
Java学习30
java·开发语言·学习
次元工程师!1 天前
LangFlow开发(三)—Bundles组件架构设计(3W+字详细讲解)
java·前端·python·低代码·langflow
oddsand11 天前
Redis网络模型
java·数据库·redis