796 字
4 分钟
本地文章推送到服务器
Ps:温馨提示,本文章,作者实现过程不如人意,文章没有推送到指定目录,故而pass
平替:scp推送教程
以下是将本地 Hexo 文章推送到远程服务器的详细教程,包含两种常见的部署方法:Git 和 rsync。
方法一:使用 Git 部署(推荐)
这种方法通过 Git 钩子自动部署,每次推送代码后服务器会自动生成静态页面。
1. 服务器端配置
步骤 1:创建裸仓库
# 在服务器上执行mkdir -p /home/git/hexo.git && cd /home/git/hexo.gitgit init --bare# 初始化裸仓库(只存储版本信息,不包含工作目录)步骤 2:设置 post-receive 钩子
nano /home/git/hexo.git/hooks/post-receive添加以下内容(替换 DEPLOY_PATH 为你的 Hexo 部署路径):
#!/bin/bashDEPLOY_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_PATHnpm install # 安装依赖(首次部署或更新依赖时需要)hexo generate # 生成静态文件步骤 3:设置文件权限并启用钩子
chmod +x /home/git/hexo.git/hooks/post-receive2. 本地 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: master3. 推送文章到服务器
# 在本地执行hexo clean && hexo generate && hexo deploy工作原理:
-
hexo deploy将代码推送到服务器的裸仓库。 -
服务器触发
post-receive钩子,自动将代码 checkout 到网站目录并生成静态页面。
方法二:使用 rsync 部署(简单快速)
这种方法通过 SSH 直接同步文件,适合初学者。
1. 服务器端配置
步骤 1:创建网站目录
mkdir -p /var/www/hexochown -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 将文件同步到服务器的指定目录。
验证部署结果
-
访问服务器 IP 或域名,检查博客是否正常显示。
-
如果遇到问题,可以查看服务器上的日志:
tail -f /var/log/nginx/error.log # Nginx 错误日志常见问题解决
-
权限问题:确保服务器上的目录权限正确,推荐使用普通用户而非 root 进行部署。
-
SSH 连接失败:
-
确保服务器 SSH 服务正常运行(
systemctl status sshd)。 -
本地生成 SSH key 并添加到服务器(
ssh-keygen和ssh-copy-id)。
- Hexo 命令找不到:在服务器上全局安装 Hexo(
npm install -g hexo-cli)。
通过以上方法,你可以轻松将本地 Hexo 文章推送到远程服务器,实现自动化部署。