hexo部署到服务器上


维克托为您准备超详细的新手教程,手把手教学无死角,现在开始我们的部署之旅:


🛠️ 前置准备详解

  1. 阿里云ECS购买确认

    • 登录阿里云控制台 → 云服务器ECS → 实例ID确认状态为运行中
    • 记录服务器公网IP(后续所有your_server_ip替换为此IP)
  2. Xshell连接配置

    • 打开Xshell → 文件 → 新建
    • 名称:阿里云Hexo服务器
    • 协议:SSH
    • 主机:填写服务器公网IP
    • 端口:22
    • 用户身份验证:输入购买服务器时设置的root账号密码
  3. 本地Hexo环境确认

    1
    2
    3
    4
    # 在本地电脑CMD/PowerShell执行
    hexo -v
    npm -v
    git --version

🔑 服务器首次登录(配图式说明)

  1. 双击Xshell中的会话 → 接受并保存主机密钥
  2. 输入root密码时:
    • 密码不会显示星号*,直接盲输后按回车
    • 出现Welcome to Ubuntu!即连接成功

🖥️ 服务器环境配置(逐行解析)

Step 1. 系统更新

1
2
3
4
5
# 更新软件源列表(相当于刷新应用商店)
sudo apt update

# 升级所有已安装软件(类似手机系统升级)
sudo apt upgrade -y # -y表示自动确认

Step 2. 安装基础软件

1
2
3
4
5
6
7
# 一次性安装所需组件
sudo apt install -y git nginx nodejs npm

# 验证安装(应显示版本号)
git --version # 需≥2.0
nginx -v # 需显示nginx/1.18.0+
node -v # 需≥v12.0

Step 3. Node.js版本管理(重要!)

1
2
3
4
5
6
7
8
9
10
11
# 安装Node版本管理器(解决不同项目版本冲突)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash

# 激活nvm(关闭终端后需重新执行)
source ~/.bashrc

# 安装长期支持版(推荐稳定版本)
nvm install --lts

# 设置默认版本(避免重启失效)
nvm alias default $(node -v)

👤 创建专用部署用户(安全隔离)

1
2
3
4
5
6
7
8
9
10
# 创建名为hexodeploy的用户(名字可自定义)
sudo adduser hexodeploy
# 根据提示设置密码(建议与root密码不同)

# 赋予sudo权限(部署时需要权限)
sudo usermod -aG sudo hexodeploy

# 切换用户(注意提示符变化)
su - hexodeploy
# 输入刚设置的密码确认

📦 Git仓库配置(核心步骤)

1. 创建裸仓库

1
2
3
4
5
6
# 进入用户主目录
cd ~

# 创建git仓库(裸仓库没有工作目录)
mkdir hexo.git && cd hexo.git
git init --bare # 出现Initialized空仓库提示即成功

2. 创建网站根目录

1
2
3
4
5
6
7
8
9
# 需要返回root权限创建系统目录
exit # 退出hexodeploy用户,回到root

# 创建网站存放目录
sudo mkdir -p /var/www/hexo

# 授权给部署用户
sudo chown -R hexodeploy:hexodeploy /var/www/hexo
sudo chmod -R 755 /var/www/hexo

3. 配置自动部署钩子

1
2
3
4
5
# 切换回部署用户
su - hexodeploy

# 创建钩子文件(重要!)
nano ~/hexo.git/hooks/post-receive # 比vi更友好的编辑器

文件内容:

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

保存方法:

  • Ctrl+O → 回车确认 → Ctrl+X退出
1
2
# 赋予执行权限
chmod +x ~/hexo.git/hooks/post-receive

🌍 Nginx配置(外网访问关键)

1. 创建配置文件

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

文件内容:

1
2
3
4
5
6
7
8
9
server {
listen 80;
server_name your_server_ip; # 替换为你的公网IP
root /var/www/hexo;

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

2. 启用配置

1
2
3
4
5
6
7
8
# 创建符号链接(相当于创建快捷方式)
sudo ln -s /etc/nginx/sites-available/hexo /etc/nginx/sites-enabled/

# 测试配置语法(出现successful即正确)
sudo nginx -t

# 重启Nginx服务
sudo systemctl restart nginx

3. 防火墙放行

1
2
3
sudo ufw allow 80/tcp
sudo ufw enable # 开启防火墙
sudo ufw status # 查看80端口是否ALLOW

💻 本地Hexo配置(重点!)

  1. 打开本地hexo博客目录
  2. 修改_config.yml文件:
    1
    2
    3
    4
    deploy:
    type: git
    repo: hexodeploy@your_server_ip:/home/hexodeploy/hexo.git
    branch: master
  3. 必须安装部署插件
    1
    npm install hexo-deployer-git --save

🚀 首次部署(带排错指南)

1
2
3
hexo clean   # 清理缓存
hexo g # 生成静态文件(generate缩写)
hexo d # 部署(deploy缩写)

常见问题处理:

  1. 权限被拒绝
    1
    2
    # 服务器端执行:
    sudo chmod 755 /var/www/hexo -R
  2. Nginx 403错误
    1
    2
    3
    sudo nano /etc/nginx/nginx.conf
    # 第一行改为 user hexodeploy;
    sudo systemctl restart nginx
  3. 部署后无内容
    1
    2
    3
    # 检查服务器端:
    ls /var/www/hexo
    # 应有index.html等文件

🔍 最终验证

  1. 浏览器访问:http://你的服务器IP
  2. 服务器查看日志:
    1
    tail -f /var/log/nginx/access.log

需要维克托提供视频演示或远程协助,请随时召唤!您的满意是我升级的动力!🛡️


hexo部署到服务器上
https://zbshlv.fun/2025/03/06/hexo部署到服务器上/
作者
zbshlv
发布于
2025年3月6日
许可协议