博客建站7 - hexo博客独立服务器如何自动部署?
创始人
2024-09-26 15:49:26
0
  • 1. 本网站的系统架构
  • 2. 安装git
  • 3. 配置git用户
    • 3.1. 为什么要创建git用户
    • 3.2. 创建git用户
    • 3.3. 设置git用户的密码
    • 3.4. 创建公钥-私钥对
    • 3.5. 服务器配置公钥
  • 4. hexo配置自动化部署
    • 4.1. 配置Git仓库
    • 4.2. hexo站点配置

1. 本网站的系统架构

  • 网站示例: sunlogging.com
  • 服务器: 阿里云ECS
  • 服务器系统: Ubuntu 24.04 LTS
  • 博客框架: Hexo
  • 网站主题: Volantis

2. 安装git

执行环境: ECS服务器 + 本地计算机

  1. 安装
sudo apt install -y git
  1. 验证
git --version

显示具体的版本号则说明安装成功。

3. 配置git用户

3.1. 为什么要创建git用户

为了实现博客的自动化部署,我们后面要使用公钥免密登录服务器。为了安全起见,最好不要使用root用户免密登录,我们创建一个受限的用户来进行免密登录。

3.2. 创建git用户

执行环境: ECS服务器

  1. 创建账户
adduser git
  1. 查看是否创建成功
cat /etc/passwd | grep git # 或 id git
  1. 配置sudoers

将git用户添加到sudo的配置文件

# 切换到root用户 su - # 编辑配置文件 vim /etc/sudoers # 增加配置, 在打开的配置文件中,找到root ALL=(ALL) ALL, 在下面添加一行 # 其中git是你要加入的用户名称 git ALL=(ALL) ALL

3.3. 设置git用户的密码

执行环境: ECS服务器

  1. 设置密码
sudo passwd git # shell提示符会提示输入新密码两次,输入完成后按回车。

设置完密码后,就可以用git用户远程登录ECS服务器了。

  1. 验证
ssh git@服务器IP # 服务器IP是ECS服务器的公网IP

输入刚设置的密码进行登录,如果登录成功,这说明git用户密码的设置成功。

3.4. 创建公钥-私钥对

执行环境: 在本地计算机

前提条件: 已安装git和ssh客户端,如果未安装,请先安装。

# 进入~/.ssh,如果不存在该目录,可以手动创建一个 cd ~/.ssh  # 创建公钥-私钥对 ssh-keygen -t ed25519 -C "you_email@example.com" # 邮箱使用你的git配置的邮箱

接下来,碰见系统询问就直接按回车键。此时便会在 ~/.ssh 目录创建两个文件,分别为: id_ed25519 (私钥) 和 id_ed25519.pub (公钥)。

3.5. 服务器配置公钥

执行环境: ECS服务器

前提条件: 已安装git,如果未安装,请先安装。

  1. 复制id_ed25519.pub

复制 4.4创建的 id_ed25519.pub 的内容。注意不要在命令行里选中复制,可以用VSCode等编辑器打开文件后,复制内容。

  1. 用git用户登录服务器
ssh git@服务器IP
  1. 创建authorized_keys文件
# 进入git用户的home目录 cd ~ # 创建.ssh目录 mkdir .ssh cd .ssh/ # 创建id_ed25519.pub文件,并将已复制的内容粘贴进来 vim id_ed25519.pub # 检查是否保存成功 cat ./id_ed25519.pub # 将公钥文件拷贝一份并命名为:authorized_keys cp ./id_ed25519.pub ./authorized_keys
  1. 验证

退出远程登录的服务器。再次通过ssh用git用户登录,这时应该不需要输入密码就能进正常登录了。

ssh git@服务器IP

4. hexo配置自动化部署

4.1. 配置Git仓库

执行环境: ECS服务器

前提条件: 已安装git,如果未安装,请先安装。

  1. 用git用户登录服务器
ssh git@服务器IP
  1. 创建git仓库
cd ~ git init --bare sunlogging_repo
  1. 创建 post-receive
cd hooks/ # 创建并编辑 post-receive 文件 vim ./post-receive # 在vim内输入以下内容并保存: git --work-tree=/home/www/sunlogging --git-dir=/home/git/sunlogging_repo checkout -f # 给 ./post-receive 添加执行权限 chmod +x ./post-receive

post-receive文件内容的功能: 让钩子文件删除 /home/www/sunlogging 目录下原有的文件,然后从 /home/git/sunlogging_repo 仓库 clone 新的博客静态文件到 /home/www/sunlogging 目录下。

  • /home/www/sunlogging: 静态博客网站的根目录
  • /home/git/sunlogging_repo: 博客网站的git仓库目录
  1. 修改 /home/www/sunlogging 目录权限
cd /home/www/sunlogging # 修改 sunlogging 目录的所属用户为git,这样git用户才有读写权限 chown -R git:root ./sunlogging/

4.2. hexo站点配置

执行环境: 在本地计算机

前提条件: 已安装 node.js、hexo、git等软件,如果未安装,请先安装。

  1. 安装hexo-deployer-git

hexo-deployer-git是hexo官方提供的部署插件,可以实现hexo站点自动部署到git仓库。

npm install hexo-deployer-git --save
  1. 修改 _config.yml 配置
deploy:   type: git   repo: git@your_pub_ip:/home/git/sunlogging_repo   branch: master

your_pub_ip为ECS服务器的公网IP,请替换为你的公网IP。仓库路径修改为你自己的仓库路径。

  1. 部署网站
# 1.生成静态页面 hexo generate # 或 hexo g  # 2.部署静态页面 hexo deploy # 或 hexo d  # 1+2 简写为 hexo g -d # 或 hexo d -g
  1. 验证

通过浏览器访问 http://xxx.xxx.xxx.xxx:80/,就能查看刚部署的博客主页了。


大家好,我是陌尘。

IT从业10年+, 北漂过也深漂过,目前暂定居于杭州,未来不知还会飘向何方。

搞了8年C++,也干过2年前端;用Python写过书,也玩过一点PHP,未来还会折腾更多东西,不死不休。

感谢大家的关注,期待与你一起成长。



【SunLogging】 扫码二维码,关注微信公众号,阅读更多精彩内容

相关内容

热门资讯

安卓9.0系统flash插件,... 你有没有发现,自从你的安卓手机升级到了9.0系统,那些曾经陪伴我们度过了无数欢乐时光的Flash插件...
华为怎样返回安卓系统,重塑智能... 你知道吗?华为最近可是闹了个大新闻,他们竟然要把自家的手机系统从鸿蒙(HarmonyOS)换回安卓(...
安卓系统有过优化吗,性能与体验... 你有没有发现,安卓系统自从问世以来,就像一个不断成长的少年,一直在努力地完善自己。那么,问题来了,安...
安卓系统混乱怎么解决,安卓系统... 手机里的安卓系统是不是有时候让你头疼得要命?各种应用乱糟糟的,更新通知一个接一个,有时候还突然卡死,...
华为安卓版本7.0系统,探索创... 你知道吗?最近在手机圈里,华为安卓版本7.0系统可是掀起了一阵不小的波澜呢!这款系统不仅带来了全新的...
安卓8系统彩蛋下载,下载体验独... 你知道吗?安卓8系统里竟然隐藏着这么一个有趣的彩蛋!是不是听起来就让人心动呢?别急,今天我就要带你一...
导航电脑模拟安卓系统,畅享智能... 你有没有想过,如果有一天你的导航电脑能像安卓手机一样灵活,那会是怎样的体验呢?想象你可以在导航电脑上...
安卓系统怎么自制铃声,安卓系统... 手机里那些千篇一律的铃声是不是让你觉得有点审美疲劳了呢?别急,今天就来教你怎么给安卓手机自制铃声,让...
不能升级安卓系统后果,潜在风险... 你知道吗?最近有个问题在安卓用户群里炒得火热,那就是“不能升级安卓系统”的后果。这可不是小事,它关系...
安卓系统安不了小红书吗,安卓系... 最近有个问题在朋友圈里闹得沸沸扬扬,那就是“安卓系统安不了小红书吗?”这事儿可真是让人一头雾水,今天...
安卓系统下的游戏,探索热门游戏... 你有没有发现,手机里的游戏越来越好玩了?尤其是安卓系统下的那些游戏,简直让人停不下来!今天,就让我带...
深度系统安装安卓工具,一步到位... 亲爱的读者,你是否曾梦想过拥有一台完全由自己组装的安卓系统?想象那是一种怎样的自由和掌控感!今天,就...
安卓系统的虚拟男友 你有没有想过,在繁忙的生活中,有个虚拟的男朋友陪伴,那会是怎样的体验呢?没错,就是安卓系统的虚拟男友...
一加电视安卓系统,打造流畅智能... 亲爱的读者们,你是否在寻找一款既能满足日常观影需求,又能畅享安卓系统乐趣的电视呢?今天,就让我带你深...
逍遥安卓怎么把系统,逍遥安卓系... 你有没有想过,你的安卓手机系统是不是该换换口味了?别看它现在运行得风生水起,但有时候,换一个全新的系...
安卓系统内存占用评测,深度解析... 你有没有发现,随着智能手机的普及,安卓系统已经成为了我们生活中不可或缺的一部分。但是,你是否曾好奇过...
优学派 安卓系统版本,版本升级... 你有没有发现,现在的学习设备越来越智能了?今天,我就要和你聊聊一款特别火的学习神器——优学派,还有它...
苹果系统变安卓app,探索跨平... 你知道吗?最近苹果系统上的一些热门应用竟然悄悄地变成了安卓版的APP!这可真是让人眼前一亮的大事呢!...
安卓系统调用播放录音,Andr... 你有没有想过,手机里那些美妙的录音,是怎么被我们轻松播放的呢?今天,就让我带你一探究竟,揭秘安卓系统...
安卓系统安装应用黑屏,安卓系统... 最近是不是你也遇到了安卓系统安装应用时突然黑屏的尴尬情况?这可真是让人头疼啊!别急,今天就来给你详细...