HEXO部署方案
hexo是一个无后端的博客系统, 不像wordpress,typecho可以直接线上编写文章, 需要在本地编写md文件, 然后编译成html上传到服务器, 整个过程还是比较繁琐, 所以, 想寻找hexo写作流的最佳方案
本地Hexo环境搭建
安装必要软件
安装Git 从Git官网下载并安装Git:https://git-scm.com/
安装Node.js 从Node.js官网下载并安装:https://nodejs.org/ 安装后验证:
node -v npm -v
安装和初始化Hexo
安装Hexo CLI
npm install -g hexo-cli初始化Hexo项目
hexo init myblog cd myblog npm install本地测试
hexo server访问
http://localhost:4000查看博客效果。
项目结构说明
myblog/
├── _config.yml # 站点配置文件
├── source/ # 文章和页面
│ └── _posts/ # 文章目录
├── themes/ # 主题目录
├── scaffolds/ # 模板文件
└── public/ # 生成的静态文件
服务器环境配置(无apt工具)
由于你的服务器没有apt工具,推测可能是CentOS/RHEL系系统,使用yum包管理器。
安装必要软件
安装Node.js
# 添加NodeSource仓库(以Node.js 14.x为例) curl -sL https://rpm.nodesource.com/setup_14.x | sudo -E bash - # 安装Node.js sudo yum install -y nodejs安装Git
sudo yum install -y git安装Nginx
sudo yum install -y nginx
配置服务器Git仓库
创建Git用户和仓库
sudo useradd git sudo passwd git # 设置密码 su - git mkdir -p ~/blog.git cd ~/blog.git git init --bare创建网站根目录
sudo mkdir -p /var/www/hexo sudo chown git:git /var/www/hexo sudo chmod 755 /var/www/hexo配置Git钩子 在
/home/git/blog.git/hooks/目录创建post-receive文件:# 切换到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赋予执行权限:
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配置Nginx 编辑
/etc/nginx/nginx.conf或/etc/nginx/conf.d/hexo.conf:server { listen 80; server_name your-domain.com; # 替换为你的域名或IP root /var/www/hexo; index index.html; location / { try_files $uri $uri/ =404; } }重启Nginx:
sudo systemctl start nginx sudo systemctl enable nginx
配置Hexo多平台部署
配置GitHub Pages仓库
创建GitHub仓库
- 仓库名格式:
用户名.github.io - 设置为public仓库
- 仓库名格式:
配置SSH密钥
ssh-keygen -t rsa -C "your-email@example.com"将公钥
id_rsa.pub内容添加到GitHub的SSH keys中。
配置Hexo部署设置
修改Hexo项目中的 _config.yml 文件:
# 部署配置[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中修改主分支, 网上资料也比较多
安装部署插件
npm install hexo-deployer-git --save
完整的写作和部署流程
日常写作流程
创建新文章
hexo new "文章标题"编辑文章 在
source/_posts/目录下找到对应的Markdown文件进行编辑。本地预览
hexo clean && hexo generate && hexo server部署到双平台
hexo clean && hexo generate && hexo deploy
访问
直接访问 用户名.github.io 或者自己的域名都可以访问博客