Background
796 字
4 分钟
本地文章推送到服务器
2025-05-11

Ps:温馨提示,本文章,作者实现过程不如人意,文章没有推送到指定目录,故而pass

平替:scp推送教程

以下是将本地 Hexo 文章推送到远程服务器的详细教程,包含两种常见的部署方法:Git 和 rsync。

方法一:使用 Git 部署(推荐)#

这种方法通过 Git 钩子自动部署,每次推送代码后服务器会自动生成静态页面。

1. 服务器端配置#

步骤 1:创建裸仓库

# 在服务器上执行
mkdir -p /home/git/hexo.git && cd /home/git/hexo.git
git init --bare
# 初始化裸仓库(只存储版本信息,不包含工作目录)

步骤 2:设置 post-receive 钩子

nano /home/git/hexo.git/hooks/post-receive

添加以下内容(替换 DEPLOY_PATH 为你的 Hexo 部署路径):

#!/bin/bash
DEPLOY_PATH="/var/www/hexo" # 网站根目录
GIT_REPO="/home/git/hexo.git" # 刚才创建的裸仓库路径
# 确保目录存在
mkdir -p $DEPLOY_PATH
# 从裸仓库克隆到网站目录
git --work-tree=$DEPLOY_PATH --git-dir=$GIT_REPO checkout -f
# 进入网站目录,安装依赖并生成静态文件
cd $DEPLOY_PATH
npm install # 安装依赖(首次部署或更新依赖时需要)
hexo generate # 生成静态文件

步骤 3:设置文件权限并启用钩子

chmod +x /home/git/hexo.git/hooks/post-receive

2. 本地 Hexo 项目配置#

步骤 1:安装 Git 部署插件

npm install hexo-deployer-git --save

步骤 2:修改 _config.yml

deploy:
type: git
repo: git@server_ip:/home/git/hexo.git # 服务器的 SSH 地址
branch: master

3. 推送文章到服务器#

# 在本地执行
hexo clean && hexo generate && hexo deploy

工作原理

  1. hexo deploy 将代码推送到服务器的裸仓库。

  2. 服务器触发 post-receive 钩子,自动将代码 checkout 到网站目录并生成静态页面。

方法二:使用 rsync 部署(简单快速)#

这种方法通过 SSH 直接同步文件,适合初学者。

1. 服务器端配置#

步骤 1:创建网站目录

mkdir -p /var/www/hexo
chown -R your_username:your_username /var/www/hexo # 设置权限

2. 本地 Hexo 项目配置#

步骤 1:安装 rsync 部署插件

npm install hexo-deployer-rsync --save

步骤 2:修改 _config.yml

deploy:
type: rsync
host: server_ip # 服务器 IP 地址
user: your_username # 服务器用户名
root: /var/www/hexo # 网站根目录
port: 22 # SSH 端口
delete: true # 删除远程服务器上不存在的文件
verbose: true # 显示详细日志
ignore_errors: false # 忽略错误

3. 推送文章到服务器#

# 在本地执行
hexo clean && hexo generate && hexo deploy

工作原理

hexo deploy 会生成静态文件,然后通过 rsync 将文件同步到服务器的指定目录。

验证部署结果#

  1. 访问服务器 IP 或域名,检查博客是否正常显示。

  2. 如果遇到问题,可以查看服务器上的日志:

tail -f /var/log/nginx/error.log # Nginx 错误日志

常见问题解决#

  1. 权限问题:确保服务器上的目录权限正确,推荐使用普通用户而非 root 进行部署。

  2. SSH 连接失败

  • 确保服务器 SSH 服务正常运行(systemctl status sshd)。

  • 本地生成 SSH key 并添加到服务器(ssh-keygenssh-copy-id)。

  1. Hexo 命令找不到:在服务器上全局安装 Hexo(npm install -g hexo-cli)。

通过以上方法,你可以轻松将本地 Hexo 文章推送到远程服务器,实现自动化部署。

本地文章推送到服务器
https://fuwari.vercel.app/posts/hexo/本地文章推送到服务器/
作者
李翊羽
发布于
2025-05-11
许可协议
CC BY-NC-SA 4.0