Ubuntu20.04下,搭建hexo个人博客

2023-05-16

一些说明和资源

所使用到的软件版本:

UbuntuNginxGithexo
20.04 LTS1.18.02.25.15.4.0.

其他说明:这里所演示的是在 VirtualBox 中进行的,实际工作场景可以是云服务器上
(因为我通常在虚拟机折腾完之后再同步到服务器hhh)


大致的布局和思路

大致的布局和思路


安装Ubuntu 20.04 LTS

这里先挖个坑,后续再补充文章…

这里可以参考这位老哥的:安装Ubuntu 20.04 LTS服务器的图文教程


服务端

1. 安装并配置Nginx

1.1 安装

先更新源:

# 获得源上的软件包列表信息
$ sudo apt-get update
# 更新本地软件
$ sudo apt-get upgrade

然后安装:

# -y 表示yes
$ sudo apt-get install -y nginx

启动服务器:

$ systemctl start nginx
$ systemctl enable nginx

nginx默认的配置文件的路径是:/etc/nginx/

1.2 修改配置文件

我们可以看到/etc/nginx/目录下的文件
/etc/nginx
正常来说应该是 nginx.conf 这个文件,我们编辑它:

$ sudo vim nginx.conf

打开后并没有在http下看到我们熟悉的server、listen这些熟悉的东西,但是会看到有这么两行: nginx.conf
所以我们可以在 /etc/nginx/conf.d/*.conf下进行配置

$ sudo cp sites-available/default conf.d/default.conf
$ sudo vim default.conf

IP改为自己的IP
root改为自己的资源路径,这里要与后面Git的勾子对应

server {
		listen 80 default_server;
		listen [::]:80 default_server;
		server_name 192.168.37.131;	// 这里写自己的服务器IP

		# root /home/xld/hexo;
		# index index.html;

		location / {
				root /home/xld/hexo;
                index index.html;
                autoindex on;
        }
}

// 还可以简单的配置监听多个端口(具体的可以看其他 nginx 的配置)
// server {
//        listen 81;
//        listen [::]:81;
//        server_name 192.168.37.131;
// 
//        root /home/xld/api;
//        #index index.html;
// 
//        location / {
//                 root /home/xld/api;
//                 autoindex on;
//        }
// }

配置完记得保存然后重新加载一下,这里列出几个常用的nginx命令:

$ nginx -t			// 查看nginx状态(用来测试配置是否正确)
$ nginx -s reload	// 重新载入配置文件
$ nginx -s reopen	// 重启 Nginx
$ nginx -s stop		// 停止 Nginx

*创建hexo文件夹

$ cd ~
$ mkdir hexo
$ sudo chmod 775 hexo	// 这里应该是权限问题我没搞懂,不改的话后面git钩子钩过来但权限不足,导致同步不了。

2. Git仓库

2.1 Git安装和用户创建

安装git:

$ sudo apt-get install git

注:这里往后基本上都是root在进行的,注意切换!

配置git用户:

$ adduser git

修改权限:

$ chmod 740 /etc/sudoers
$ vim /etc/sudoers

定位到这里,加上 git用户这一行
/etc/sudoers
然后保存并退出,将sudoers文件权限改回原样:

$ chmod 400 /etc/sudoers

设置git用户的密码:

$ sudo passwd git

切换到git用户,然后在~目录下创建 .ssh文件夹:

$ su git
$ cd ~
$ mkdir .ssh
$ cd .ssh

生成公钥密钥文件:

$ ssh-keygen

将公钥文件复制一份:

$ cp id_rsa.pub authorized_keys

修改authorized_keys的权限:

$ chmod 755 ~
$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/authorized_keys

然后保存并退出后,我们就可以利用ssh连接和登陆git用户啦~

2.2 Git的勾子hooks

创建仓库

$ su root
$ cd /home/git
$ git init --bare blog.git		// 在/home/git下创建新仓库blog.git
$ chown git:git -R blog.git		// 给予git用户权限

/home/hexo/blog.git/hookd 下创建一个 post-receive 文件
把提交到 /home/git/blog.git 仓库里的文件同步到 /home/xld/hexo(上文nginx的root资源目录) 中。

$ cd blog.git/hooks/
$ vim post-receive

在 post-receive 中添加以下内容:

#!/bin/bash
git --work-tree=/home/xld/hexo --git-dir=/home/git/blog.git checkout -f

保存退出,添加可执行权限:

chmod +x /home/git/blog.git/hooks/post-receive


本地端

1. 安装node.js

菜鸟教程,你值得拥有:Node.js 安装配置

2. hexo

进入到你的blog文件夹下(比如我是windows,就cmd进入到 E:\blog 目录下)

2.1 安装&初始化

安装

$ npm install -g hexo-cli

// 安装成功后可以查看相关信息
$ hexo -v

初始化一个博客

$ hexo init

启动博客

$ hexo s

启动之后我们就可以在浏览器输入localhost:4000进行访问了
然后你就可以看到 Hello World 文章和它的四个常用命令

2.2 部署到服务端

打开文件夹下的 _config.yml 文件

找到 deploy 这一项,然后按格式添加自己的仓库地址
(如果你有多个仓库的话,按格式接着写就能一次性git上去)
deploy
保存退出,然后顺便把服务端也停掉(上面的 hexo s

清除旧文件&重新生成&发布:

$ hexo clean & hexo g & hexo d

直接 $ hexo d 也行,只不过说一下可以这么用而已…

之后等他自动执行发布就好了,如果有提示你输入git用户/密码,照着输入就行
之后有ssh就会方便一点

3. 访问服务端进行浏览

返回 Ubuntu LTS 上,在 /home/xld/hexo 应该能看到 hexo 自动发布的东西
如果你 nginx 没啥问题的话,这时在其他电脑的浏览器上,输入IP地址,就能访问到刚刚那篇 Hello World 文章啦~

再回过头来看开局的那张图。。。

这简陋的界面多少都有点接受不了吧…这时就可以去到hexo官网 找到一个自己喜欢的主题进行魔改吧~


参考文章

  • 安装Ubuntu 20.04 LTS服务器的图文教程
  • 从零搭建Hexo博客并部署腾讯云服务器(宝宝级教学)
  • hexo官网
  • nginx怎么配置
  • Git 钩子
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ubuntu20.04下,搭建hexo个人博客 的相关文章

随机推荐

  • 随机排列算法及《算法导论》5.3节习题解答

    随机排列算法及 算法导论 5 3节习题解答 算法导论 介绍了两种随机排列数组的算法 第一种算法是为数组的每个元素A i 赋一个随机的优先级P i xff0c 然后依据优先级对数组A中的元素进行排序 例如 xff0c 如果初始数组A 61 1
  • 一个F范数对矩阵求导例子

    61 61 PART1 61 61 1 问题 如何求下列表达式中的未知参数W xff1f 求偏导 xff1f min f
  • Ubuntu设置sudo免密码

    步骤1 xff1a 使用su命令切换至root用户 在终端中输入以下命令 xff1a sudo su 输入当前用户的密码 xff0c 即可切换至root用户 步骤2 xff1a 使用如下命令修改sudoers文件权限 在终端中输入以下命令
  • log4j2 使用详解

    转载自 Blog of 天外的星星 xff1a http www cnblogs com leo lsw p log4j2tutorial html Log4j 2的好处就不和大家说了 xff0c 如果你搜了2 xff0c 说明你对他已经有
  • 基于webpack实现多html页面开发框架八 html引入图片打包和公共页面模块复用

    一 解决什么问题 1 html中img引入的图片地址没有被替换 xff0c 找不到图片 2 html公共部分复用问题 xff0c 如头部 底部 浮动层等 二 html中img引入图片问题解决 1 在index html插入img xff0c
  • 程序员入门编程,看这10本书,少走10年弯路

    如果能时光倒流 xff0c 回到过去 xff0c 作为一个开发人员 xff0c 你可以告诉自己在职业生涯初期应该读一本 xff0c 你会选择哪本书呢 xff1f 我希望这个书单列表内容丰富 xff0c 可以涵盖很多东西 高尔基曾说 书是人类
  • 编译vs2008的samples程序总是跳过

    编译vs2008的samples程序总是跳过 xff0c 要配置属性还显示 未能完成操作 未指定的错误 的解决办法 作者 admin 分类 开发问题 发布时间 2013 03 12 09 22 974 浏览数 6 没有评论 文章转自王牌软件
  • 二叉排序树的删除

    xff08 网上讲二叉排序树删除的资料很少 xff0c 这篇很不错 xff01 转自 xff1a http bbs csdn net topics 110010437 xff09 二叉排序树的删除 xff1a 对于一般的二叉树来说 xff0
  • MFC 用户界面线程:界面线程的退出 窗口关闭的流程

    原文链接 xff1a http wenku baidu com link url 61 6CFkWbLOeFgNoUsJniCX3ksw6 RztxMr9Z e6t7uu3e vV7UTKThUEkyRkq8IXwxIw5qYctN8gIx
  • MFC用户界面多线程实例2

    以下是 MFC 用户界面线程相关知识 由于用户界面线程含有自己的消息循环 xff0c 可以出来 Windows 消息 xff0c 并可创建和管理诸如窗口和控件等用户界面 元素 因此 xff0c 这 种线程较工程线程更为复杂 创建用户界面线程
  • 反汇编定位代码崩溃位置_1

    原帖 xff1a http blog csdn net gwzz1228 article details 9045853 利用map xff0c cod文件定位崩溃代码行 利用vs2010 新建一个空的控制台项目 xff0c 添加文件gtg
  • 反汇编定位代码崩溃位置_3

    原帖 xff1a http blog sina com cn s blog 141f234870102van8 html win7 43 vs2010通过map文件和cod文件找到崩溃的代码行 2015 01 11 11 31 04 转载
  • 反汇编定位代码崩溃位置_4

    原帖 xff1a http blog csdn net xiao article details 23177577 GDB如何从Coredump文件恢复动态库信息 标签 xff1a GDBcoredumpso调试动态库 2014 04 08
  • C链表反转

    节点 struct Note int value Note pNext typedef struct Note PList 生成一个链表 Note GenerateList 输出一个链表 void PrintList Note pHead
  • FtpClient.storeFile返回false解决方法

    今天在利用FTP将客户端文件存储到服务器端时 xff0c 在调用ftpClient storeFile方法后 xff0c 总是返回false xff0c 在百度之后 xff0c 有提到说添加一行 ftpClient enterLocalPa
  • 压缩软件介绍

    压缩软件介绍 一 xff0e 关于WINRAR压缩 ZIP 1 最大优点就是普及率 2 相对RAR格式来说它的压缩速度会要快一些 RAR 1 对比ZIP来说RAR是一次长足的进步 它能够提供更好的压缩比率 2 支持固实压缩模式 对存在很多重
  • ubuntu 使用MobaXterm和cpolar配置外网访问ssh和vnc

    目录 1 首先下载MobaXterm xff1a mobaxterm 2 注册并在ubuntu服务器上安装cpolar xff1a cpolar 安装说明 xff1a 3 保留固定TCP地址 xff08 此步骤可跳过 xff0c 但需要每天
  • copy-webpack-plugin HookWebpackError: Not supported

    前言 运行项目时 xff0c 控制台报错 HookWebpackError Not supported 定位问题发现与 copy webpack plugin 相关 本文主要记录下解决方案 一 控制台报错 二 copy webpack pl
  • 字符串子串的查找

    1 考虑用标准函数库中 strstr 函数 包含文件 xff1a string h 函数名 strstr 函数原型 xff1a extern char strstr char str1 char str2 功能 xff1a 从字符串str1
  • Ubuntu20.04下,搭建hexo个人博客

    一些说明和资源 所使用到的软件版本 xff1a UbuntuNginxGithexo20 04 LTS1 18 02 25 15 4 0 其他说明 xff1a 这里所演示的是在 VirtualBox 中进行的 xff0c 实际工作场景可以是