Hexo部署至服务器(Ubuntu 20.04)
发布时间 - 2025-07-14 00:00:00 点击率:次前言
本文将指导您如何从零开始,将Hexo项目部署到Ubuntu 20.04服务器上。
正文环境 服务器:虚拟机(Ubuntu 20.04) IP:192.168.75.138 客户端:Windows 10,使用Xshell连接服务器进行操作。
在Ubuntu上搭建Git服务器 首先,使用Xshell连接服务器,并切换到root用户,返回到根路径。
创建Git仓库
- 安装openssh-server
命令如下:
sudo apt-get install openssh-server
- 安装完成后,检查ssh服务是否已启动
命令如下:
ps -e|grep ssh
- 创建一个名为blog的用户,用于管理Hexo项目
命令如下:
adduser blog
系统会提示输入密码,重复确认密码,后续内容直接回车即可。
- 为blog用户添加文件写入权限
使用vim编辑/etc/sudoers文件
vim /etc/sudoers
找到User privilege specification部分,添加如下内容:
blog ALL=(ALL:ALL) ALL
- 切换到blog用户
su blog
- 安装git
命令如下:
sudo apt-get install git-core
- 返回到根路径(cd /),在/var/repo下创建名为hexo_static的裸仓库
命令如下:
sudo mkdir /var/repo sudo chown -R $USER:$USER /var/repo sudo chmod -R 755 /var/repo cd /var/repo git init --bare hexo_static.git
- 进入该目录进行查看
配置Nginx托管文件目录
- 首先安装Nginx
命令如下:
sudo apt-get install nginx -y
- 创建/var/www/hexo目录,用于Nginx托管,修改目录所有权和权限
命令如下:
sudo mkdir -p /var/www/hexo sudo chown -R $USER:$USER /var/www/hexo sudo chmod -R 755 /var/www/hexo
- 使用vim修改/etc/nginx/sites-enabled/default,使root指向hexo目录
命令如下:
sudo vim /etc/nginx/sites-enabled/default
找到server部分,修改如下内容:
root /var/www/hexo;
- 重启Nginx服务,使得改动生效
命令如下:
sudo service nginx restart
创建Git钩子
- 在之前创建的hexo_static裸仓库下有一个hooks文件夹,在其中创建一个名为post-receive的钩子文件:
命令如下:
vim /var/repo/hexo_static.git/hooks/post-receive
在其中写入如下内容:
#!/bin/bash git --work-tree=/var/www/hexo --git-dir=/var/repo/hexo_static.git checkout -f
保存后退出。
- 使该文件变为可执行文件
命令如下:
chmod +x /var/repo/hexo_static.git/hooks/post-receive
在Windows上搭建客户端 首先安装git,这里不再详细说明。使用命令ssh-keygen -t rsa在Windows用户下的.ssh文件夹中生成密钥。将生成的公钥id_rsa.pub复制到Ubuntu服务器的/home/blog/.ssh/authorized_keys上。首先创建.ssh目录,并进入该目录:
sudo mkdir .ssh cd .ssh/
接着创建authorized_keys文件:
sudo touch authorized_keys
- 将Windows下的id_rsa.pub文件内容复制到Ubuntu下的authorized_keys文件
命令如下:
sudo vim .ssh/authorized_keys
部署Hexo项目
编辑Hexo的config.yml文件,在deploy部分修改repo项:
deploy: type: git repo: blog@server_ip:/var/repo/hexo_static.git branch: master
执行命令hexo deploy,将静态文件上传至Ubuntu服务器。
进入目录var/www/hexo/下,可以看到静态文件已全部上传。
访问测试 打开浏览器,输入Ubuntu服务器的IP地址,就可以看到博客页面。
补充 如果部署到购买的云服务器(如阿里云)上,可能出现访问服务器IP没有响应的情况。
点击云服务器/ECS,在安全组规则中手动添加一条80端口的规则:
后记(后续补充域名的配置操作)
参考资料:
- 用Hexo部署博客到Ubuntu服务器 - 简书 (jianshu.com)
- Git版本控制之ubuntu搭建Git服务器 - StoneGeek - 博客园 (cnblogs.com)
# ubuntu
# git
# windows
# nginx
# 浏览器
# it服务
# var
# default
# vim
# ssh
# 云服务器
# 切换到
# 客户端
# 博客
# 详细说明
# 可以看到
# 参考资料
# 重启
# 可能出现
# 创建一个
# 就可以
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel如何记录日志_Laravel Logging系统配置与自定义日志通道
Laravel如何清理系统缓存命令_Laravel清除路由配置及视图缓存的方法【总结】
Laravel怎么实现一对多关联查询_Laravel Eloquent模型关系定义与预加载【实战】
如何快速搭建安全的FTP站点?
1688铺货到淘宝怎么操作 1688一键铺货到自己店铺详细步骤
Laravel如何使用Blade模板引擎?(完整语法和示例)
Win11怎么更改系统语言为中文_Windows11安装语言包并设为显示语言
JavaScript中如何操作剪贴板_ClipboardAPI怎么用
北京网页设计制作网站有哪些,继续教育自动播放怎么设置?
中国移动官方网站首页入口 中国移动官网网页登录
昵图网官网入口 昵图网素材平台官方入口
🚀拖拽式CMS建站能否实现高效与个性化并存?
如何用腾讯建站主机快速创建免费网站?
html5源代码发行怎么设置权限_访问权限控制方法与实践【指南】
图册素材网站设计制作软件,图册的导出方式有几种?
如何注册花生壳免费域名并搭建个人网站?
Laravel如何升级到最新版本?(升级指南和步骤)
Windows驱动无法加载错误解决方法_驱动签名验证失败处理步骤
如何登录建站主机?访问步骤全解析
js实现点击每个li节点,都弹出其文本值及修改
jimdo怎样用html5做选项卡_jimdo选项卡html5实现与切换效果【指南】
iOS正则表达式验证手机号、邮箱、身份证号等
如何实现建站之星域名转发设置?
php结合redis实现高并发下的抢购、秒杀功能的实例
Laravel Eloquent模型如何创建_Laravel ORM基础之Model创建与使用教程
Laravel Debugbar怎么安装_Laravel调试工具栏配置指南
标题:Vue + Vuex + JWT 身份认证的正确实践与常见误区解析
网站制作免费,什么网站能看正片电影?
如何快速搭建FTP站点实现文件共享?
如何自定义safari浏览器工具栏?个性化设置safari浏览器界面教程【技巧】
厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?
Laravel与Inertia.js怎么结合_使用Laravel和Inertia构建现代单页应用
如何在云指建站中生成FTP站点?
如何在万网ECS上快速搭建专属网站?
Win11关机界面怎么改_Win11自定义关机画面设置【工具】
高性能网站服务器配置指南:安全稳定与高效建站核心方案
HTML透明颜色代码怎么让图片透明_给img元素加透明色的技巧【方法】
WEB开发之注册页面验证码倒计时代码的实现
Laravel如何处理文件下载请求?(Response示例)
php在windows下怎么调试_phpwindows环境调试操作说明【操作】
,南京靠谱的征婚网站?
如何做网站制作流程,*游戏网站怎么搭建?
Laravel如何自定义错误页面(404, 500)?(代码示例)
最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?
微信小程序 input输入框控件详解及实例(多种示例)
Python文件流缓冲机制_IO性能解析【教程】
网站制作企业,网站的banner和导航栏是指什么?
使用C语言编写圣诞表白程序
Laravel怎么防止CSRF攻击_Laravel CSRF保护中间件原理与实践
Laravel怎么实现软删除SoftDeletes_Laravel模型回收站功能与数据恢复【步骤】

