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(服务器端)
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. 推送到服务器
第五步(可选):配置 SSH 免密登录
本地生成 SSH 密钥
上传公钥到服务器
1
| ssh-copy-id youruser@your.server.ip
|
第六步:访问你的博客
打开浏览器访问:
或者绑定域名后访问你的域名。
常见问题解决
403 Forbidden:
无法写入 /var/www/hexo:
1
| sudo chown -R youruser:youruser /var/www/hexo
|