如何将Hexo博客部署到VPS?_从环境配置到自动部署的完整指南

如何将Hexo静态博客成功部署到自己的VPS服务器?

部署步骤 所需工具 关键配置
VPS环境准备 Nginx、Git、Node.js 系统用户权限、防火墙规则
本地Hexo配置 Hexo CLI、Git config.yml部署设置
Git仓库创建 Git、SSH 裸仓库初始化、权限配置
自动部署配置 Git Hooks、Shell脚本 post-receive钩子脚本
Nginx服务配置 Nginx、域名解析 虚拟主机配置、SSL证书

如何将Hexo博客部署到VPS?从环境配置到自动部署的完整指南

部署流程概览

步骤 主要任务 预期结果
1 VPS基础环境配置 安装Nginx、Git、Node.js等必要软件
2 Git用户和仓库设置 创建专用git用户和裸仓库
3 SSH免密登录配置 本地与服务器间无需密码推送
4 Git Hooks自动部署 实现推送后自动更新网站文件
5 Nginx服务配置 正确访问Hexo生成的静态文件

详细操作步骤

步骤一:VPS基础环境配置

操作说明:在VPS上安装运行Hexo博客所需的基础软件环境 使用工具提示
  • 包管理器(yum/apt)
  • 系统服务管理(systemctl)
# 更新系统包(CentOS/Ubuntu)
sudo yum update -y  # CentOS
sudo apt update && sudo apt upgrade -y  # Ubuntu

安装Nginx Web服务器

sudo yum install nginx -y # CentOS sudo apt install nginx -y # Ubuntu

启动Nginx并设置开机自启

sudo systemctl start nginx sudo systemctl enable nginx

安装Git版本控制

sudo yum install git -y # CentOS sudo apt install git -y # Ubuntu

安装Node.js(Hexo运行环境)

curl -fsSL https://rpm.nodesource.com/setuplts.x | sudo bash - # CentOS sudo apt install nodejs npm -y # Ubuntu

步骤二:Git用户和仓库设置

操作说明:创建专门的git用户和裸仓库,用于接收Hexo推送 使用工具提示
  • 用户管理命令(adduser, passwd)
  • 文件权限设置(chmod)
# 创建git用户
sudo adduser git
sudo passwd git  # 设置密码

配置sudo权限

sudo chmod 740 /etc/sudoers sudo vim /etc/sudoers

添加:git ALL=(ALL) ALL

创建Git裸仓库

sudo su git cd ~ mkdir blog.git && cd blog.git git init --bare

步骤三:SSH免密登录配置

操作说明:配置SSH密钥对,实现本地到服务器的免密登录 使用工具提示
  • SSH密钥生成(ssh-keygen)
  • 公钥分发
# 本地生成SSH密钥(如果还没有)
ssh-keygen -t rsa -C "youremail@example.com"

查看并复制公钥

cat ~/.ssh/idrsa.pub

在服务器上配置授权密钥

sudo su git mkdir -p ~/.ssh vim ~/.ssh/authorized
keys

粘贴本地公钥内容

设置正确的权限

chmod 700 ~/.ssh chmod 600 ~/.ssh/authorizedkeys

步骤四:Git Hooks自动部署

操作说明:配置Git钩子脚本,实现推送后自动部署 使用工具提示
  • 脚本编辑(vim/nano)
  • 文件权限管理
# 创建post-receive钩子脚本
sudo su git
cd ~/blog.git/hooks
vim post-receive

脚本内容:

#!/bin/bash git --work-tree=/var/www/html --git-dir=/home/git/blog.git checkout -f

设置脚本可执行权限

chmod +x post-receive

步骤五:Nginx服务配置

操作说明:配置Nginx虚拟主机,指向Hexo静态文件目录 使用工具提示
  • Nginx配置编辑
  • 服务重启命令
# 创建网站根目录
sudo mkdir -p /var/www/html
sudo chown git:git /var/www/html

编辑Nginx配置文件

sudo vim /etc/nginx/conf.d/blog.conf

配置文件内容:

server { listen 80; server
name your-domain.com; root /var/www/html; index index.html; location / { tryfiles $uri $uri/ =404; } }

测试配置并重启Nginx

sudo nginx -t sudo systemctl restart nginx

步骤六:本地Hexo配置和部署

操作说明:配置本地Hexo项目的部署设置并执行部署 使用工具提示
  • Hexo配置文件编辑
  • Git远程仓库添加
# 在Hexo项目根目录配置config.yml
deploy:
  type: git
  repo: git@your-server-ip:/home/git/blog.git
  branch: master

添加远程仓库(如果需要)

git remote add vps git@your-server-ip:/home/git/blog.git

生成静态文件并部署

hexo clean hexo generate hexo deploy

常见问题及解决方案

问题 可能原因 解决方案
Nginx显示默认欢迎页面 默认站点配置优先级更高 禁用或修改默认站点配置,或使用其他端口
SSH连接被拒绝 防火墙阻止或SSH服务未运行 开放22端口,检查sshd服务状态
Git推送权限不足 目录权限设置错误 检查git用户对目标目录的读写权限
静态文件未更新 Git钩子脚本未正确执行 检查脚本权限和路径配置,手动测试脚本
域名无法访问 DNS解析未生效或未绑定 检查域名解析设置,确保指向正确的服务器IP

部署验证

完成所有配置后,在浏览器中输入你的服务器IP或域名,应该能看到Hexo博客的正常页面。如果遇到问题,可以按照以下步骤排查:
  1. 检查Nginx服务状态:sudo systemctl status nginx
  2. 验证网站目录文件:ls /var/www/html
  3. 测试Git推送:在本地修改文章后重新执行hexo deploy
通过以上完整的部署流程,你的Hexo博客就已经成功运行在自己的VPS服务器上了。这种部署方式不仅提升了访问速度,还让你对博客拥有完全的控制权。

发表评论

评论列表