0%

hexo 服务器部署

Hexo 博客部署到 Linux 服务器 + Nginx

第一步:服务器准备

适用系统: Debian/Ubuntu 等类 Unix 系统

1. 安装 Nginx

1
2
sudo apt update
sudo apt install nginx -y

2. 创建网站目录

1
2
sudo mkdir -p /var/www/hexo
sudo chown -R $USER:$USER /var/www/hexo

3. 配置 Nginx

编辑默认配置文件:

1
sudo nano /etc/nginx/sites-available/default

替换 server 内容为:

1
2
3
4
5
6
7
8
9
10
11
server {
listen 80;
server_name _; # 可改成你的域名

root /var/www/hexo;
index index.html;

location / {
try_files $uri $uri/ =404;
}
}

测试配置并重启:

1
2
sudo nginx -t
sudo systemctl restart nginx

第二步:服务器配置 Git 自动部署

1. 安装 Git(服务器端)

1
sudo apt install git -y

2. 创建裸仓库

1
2
mkdir -p ~/hexo.git && cd ~/hexo.git
git init --bare

3. 设置自动部署脚本

编辑钩子脚本:

1
nano ~/hexo.git/hooks/post-receive

写入内容:

1
2
#!/bin/bash
git --work-tree=/var/www/hexo --git-dir=/home/$USER/hexo.git checkout -f

然后:

1
chmod +x ~/hexo.git/hooks/post-receive

第三步:本地配置 Hexo 的 Git 部署

1. 修改本地 Hexo 的 _config.yml

1
2
3
4
deploy:
type: git
repo: youruser@your.server.ip:/home/youruser/hexo.git
branch: master

2. 安装 Hexo Git 部署插件

1
npm install hexo-deployer-git --save

第四步:部署流程

1. 本地生成静态文件

1
hexo clean && hexo generate

2. 推送到服务器

1
hexo deploy

第五步(可选):配置 SSH 免密登录

本地生成 SSH 密钥

1
ssh-keygen -t rsa

上传公钥到服务器

1
ssh-copy-id youruser@your.server.ip

第六步:访问你的博客

打开浏览器访问:

1
http://your.server.ip

或者绑定域名后访问你的域名。


常见问题解决

  • 403 Forbidden:

    • 确认 /var/www/hexoindex.html

    • 设置权限:

      1
      sudo chmod -R 755 /var/www/hexo
  • 无法写入 /var/www/hexo:

    1
    sudo chown -R youruser:youruser /var/www/hexo