Hexo 部署到阿里云服务器
前言
Hexo 是一个快速、简洁且高效的博客框架,它使用 Markdown 编写文章,并生成静态网页,非常适合部署到服务器上。本文基于阿里云服务器(假设使用 CentOS 系统),详细说明如何通过 Git 和 Nginx 将 Hexo 博客部署上线。整个过程包括服务器端准备、Git 仓库搭建、Nginx 配置以及本地 Hexo 配置。
前提条件
已购买阿里云 ECS 服务器,并安装 CentOS 7/8 系统。
本地已安装 Hexo 并创建好博客项目。
服务器已开启 SSH 访问,并配置好防火墙允许 80 端口(HTTP)。
本教程分为两个大部分,前一部分是服务端配置,后一部分是本地 Hexo 配置。
服务端配置
步骤 1: 安装必要的依赖和工具
首先,确保服务器有基本的开发依赖和编译工具。这些是安装 Git 等软件的基础。
BASH
yum install -y curl-devel expat-devel gettext-devel openssl-devel zlib-devel
安装编译工具:
BASH
yum install -y gcc perl-ExtUtils-MakeMaker package
步骤 2: 安装和检查 Git
检查 Git 是否已安装:
BASH
git --version
如果未安装或版本过低,执行安装(已安装可跳过):
BASH
yum install git -y
步骤 3: 创建 Git 用户和博客目录
添加一个专用于 Git 的用户,并设置密码:
BASH
useradd git
passwd git # 输入密码并确认
创建博客存放目录(用于存放 Hexo 生成的静态文件):
BASH
mkdir /home/blog
赋予目录读写权限(确保 Git 用户可操作):
BASH
chmod -R a+rw /home/blog
步骤 4: 建立 Git 仓库
切换到 Git 用户的 home 目录,并初始化一个 bare 仓库:
BASH
cd /home/git
git init --bare blog.git
赋予 Git 仓库目录读写权限:
BASH
chmod -R a+rw /home/git
步骤 5: 配置 Git 钩子
创建 post-receive 钩子文件,用于在 push 时自动 checkout 到博客目录:
BASH
vim /home/git/blog.git/hooks/post-receive
在文件中添加以下内容:
BASH
#!/bin/bash
git --work-tree=/home/blog --git-dir=/home/git/blog.git checkout -f
保存退出后,赋予钩子可执行权限:
BASH
chmod +x /home/git/blog.git/hooks/post-receive
这个钩子确保每次从本地 push 时,服务器会自动更新 /home/blog 目录下的文件。
步骤 6: 安装和配置 Nginx
安装 Nginx Web 服务器:
BASH
yum install nginx -y
启动 Nginx 服务:
BASH
systemctl start nginx.service
检查 Nginx 配置文件路径和语法正确性:
BASH
nginx -t
1.这一部分需要注意:当下面出现‘输入’或者‘input’时,不需要切换直接删除修改下面的配置即可; 2.当下面没有显示‘输入’或者‘input’的字样时,需要按i键后下面会出现插入模式,直接修改即可; 3.修改完成后,按Esc键退出插入模式,按shift+:输入:wq退出,再输入wq保存退出。
修改 Nginx 配置文件(路径通常为 /etc/nginx/nginx.conf),配置服务器块指向博客目录。例如,在 http 块下添加或修改 server 配置:
NGINX
server {
listen 80;
server_name your_domain.com; # 替换为您的域名或 IP
location / {
root /home/blog; # 指向 Hexo 生成的静态文件目录
index index.html index.htm;
}
}
保存后,重启 Nginx:
BASH
systemctl restart nginx.service
现在,访问服务器 IP 或域名,应该能看到默认 Nginx 页面(后续部署 Hexo 后会替换为博客); 当然,出现404也没关系,后期部署的过程中还是可以实现部署个人博客的功能的。
本地 Hexo 配置(电脑上操作部署)
步骤 7: 本地 Hexo 配置和部署
在您的 Windows(或本地)Hexo 博客目录下,安装部署插件:
BASH
npm install hexo-deployer-git --save
修改 Hexo 的 _config.yml 配置文件,在 deploy 部分添加:
YAML
deploy:
type: git
repository: git@服务器IP地址:/home/git/blog.git # 替换为实际 IP 和用户名
branch: master # 可选,默认为 master
现在,您可以使用以下命令生成并部署博客:
BASH
hexo clean && hexo generate && hexo deploy
部署成功后,访问服务器 IP 或域名,即可看到您的 Hexo 博客。
注意事项
权限问题:确保 Git 用户有权限访问
/home/blog和仓库。如果遇到权限错误,可使用chown -R git:git /home/blog和chown -R git:git /home/git调整所有者。SSH 配置:本地 push 时需配置 SSH 密钥,避免每次输入密码。生成密钥后,将公钥添加到服务器的
/home/git/.ssh/authorized_keys。防火墙:阿里云服务器需在安全组中开启 80/443 端口,并使用
firewall-cmd --add-service=http --permanent和firewall-cmd --reload配置防火墙。域名绑定:如果有域名,在阿里云控制台解析到服务器 IP。
HTTPS:生产环境建议使用 Certbot 配置 SSL 证书。
调试:如果部署失败,检查 Git 日志或 Nginx error_log(路径:
/var/log/nginx/error.log)。
结语
通过以上步骤,您可以将 Hexo 博客轻松部署到阿里云服务器,实现自动化更新。整个过程利用 Git 的钩子机制,避免手动上传文件。如果遇到问题,可参考 阿里云文档 或 Hexo 官方指南。欢迎在评论区交流经验!

