远程部署博客到阿里云服务器 - 从本地到云端的完整流程
远程部署博客到阿里云服务器 - 从本地到云端的完整流程
yuto前言
对于个人博主来说,将博客托管在云服务器上可以获得更好的性能和自定义能力。本文记录了我通过 SSH 远程管理阿里云服务器上 Hexo 博客的完整流程,包括文章创建、图片上传、静态文件生成和部署。
环境概述
- 博客源码位置:
/root/blog/(阿里云服务器) - 主题:AnZhiYu(一个简洁的主题)
- Web 服务器:Nginx,监听 80 端口
- 文章目录:
/root/blog/source/_posts/ - 静态文件目录:
/root/blog/public/ - 网站根目录:
/var/www/html/
完整部署流程
第一步:本地编写文章
在本地使用 Markdown 格式编写文章,标准格式如下:
1 | --- |
第二步:生成配图
使用 mmx-cli 工具生成文章配图:
1 | mmx image generate \ |
注意:aspect-ratio 只支持以下比例:1:1, 16:9, 4:3, 3:2, 2:3, 3:4, 9:16, 21:9
第三步:上传文章和图片
通过 SCP 命令上传文件到服务器:
上传文章:
1 | sshpass -p '你的密码' scp -o StrictHostKeyChecking=no \ |
上传图片:
1 | sshpass -p '你的密码' scp -o StrictHostKeyChecking=no \ |
第四步:SSH 远程执行构建
连接到服务器并执行 Hexo 构建命令:
1 | sshpass -p '你的密码' ssh -o StrictHostKeyChecking=no \ |
第五步:部署到 Web 目录
将生成的静态文件复制到 Nginx 网站目录:
1 | # 方法一:直接复制到网站根目录 |
第六步:验证发布
检查文章是否成功发布:
1 | # 检查静态文件是否存在 |
常用 SSH 命令速查
| 操作 | 命令 |
|---|---|
| 连接服务器 | sshpass -p '你的密码' ssh -i ~/.ssh/sg_key root@your-server-ip |
| 上传文件 | scp -i ~/.ssh/sg_key local.file root@your-server-ip:/path/ |
| 上传到指定目录 | scp -i ~/.ssh/sg_key local.file root@your-server-ip:/root/blog/source/_posts/ |
| 批量上传图片 | scp -i ~/.ssh/sg_key *.png root@your-server-ip:/root/blog/source/images/ |
| 执行远程命令 | sshpass -p '你的密码' ssh root@your-server-ip "命令" |
自动化脚本
为了简化部署流程,可以创建一个自动化脚本:
1 |
|
使用方式:
1 | chmod +x deploy-blog.sh |
常见问题处理
问题一:SSH 连接超时
如果连接缓慢或超时,可以添加超时参数:
1 | sshpass -p '你的密码' ssh -o ConnectTimeout=5 root@your-server-ip |
问题二:第一次连接需要确认
使用 -o StrictHostKeyChecking=no 跳过主机密钥确认:
1 | sshpass -p '你的密码' ssh -o StrictHostKeyChecking=no root@your-server-ip |
问题三:图片无法显示
检查图片路径是否正确:
- 确认图片已上传到
/root/blog/source/images/ - 检查文章的 cover 和图片路径是否匹配
- 重新运行
hexo generate
问题四:Hexo 命令不存在
如果提示找不到 hexo 命令,需要先安装:
1 | npm install -g hexo-cli |
或者使用完整路径:
1 | /root/blog/node_modules/.bin/hexo generate |
总结
通过 SSH 远程管理博客是一种简单高效的方式,整个流程只需要:
- 本地准备 - 编写文章和生成配图
- 上传 - 使用 scp 上传到服务器
- 构建 - SSH 远程执行 hexo generate
- 部署 - 复制到网站目录
- 验证 - 检查网站是否正常
熟练后,整个流程只需要几分钟就可以完成一篇带图片的博客文章发布。
相关资源
有问题欢迎留言交流!

