0%

搭建个人博客

搭建个人博客

一般来说,想让别人能看到你的网站,你要购买域名、买服务器、再人工把网页文件传上去,还要装个 Nginx 之类的 web 服务器软件、修改软件配置等等,整套流程还是比较复杂的。

其他实现方式:

  1. 网站托管服务

    网站托管实际上就是把自己的网站文件放在别人的服务器上,提供访问。国外的 Vercel、GitHub Pages,国内的 Webify、Gitee Pages都可以提供服务。(这里还是推荐GitHub吧,虽然国内访问慢一点,但是Gitee Pages 之前服务下架过 3 个月)

  2. 对象存储

    对象存储可以将图片、音视频等文件放上去存储,也可以预览和下载已上传的文件。国内的对象存储服务有七牛云、腾讯云存储等。之前用过阿里云的OSS对象存储也不错,可以创建自己的博客图床。(这里说一下Gitee仓库图床,现在加了防盗链,不好用了,可以看https://blog.51cto.com/phyger/5181594)

  3. 内网穿透

    内网穿透之前用过钉钉的一个工具,实际上就是利用钉钉的服务器做一个转发。内网穿透的话,自己电脑得一直开机,不推荐。

博客框架

开源博客框架有:

  • Hexo

    Hexo 是一个基于Node.js的快速、简洁且高效的静态博客框架。Hexo 支持Markdown解析文章,在几秒内,即可利用靓丽的主题生成静态网页。

    官网:https://hexo.io/zh-cn/

    Hexo优点是直接使用markdown文档,不需要在后台编辑。

    但是Hexo没有管理端,所以Hexo自身是依托于自己在本地配置好的环境,写好文章以后可以开启Server进行预览,没有问题以后通过git推送到仓库。需要一定的技术水平,不适合小白。但是这样也有优点,因为没有后台可以直接用github零成本建站。

    主题等内容的修改需要手动配置yaml文件,真的很麻烦。

  • WordPress

    WordPress是一款基于PHP语言的动态博客框架,能让你建立出色网站、博客或应用。用户可以在支持PHP和MySQL的服务器上架设属于自己的网站。用自己服务器建站的时候用过。

    官网:https://wordpress.org/

  • VuePress

    官网:https://vuepress.vuejs.org/zh/

  • Hugo

    Hugo是一种用Go语言编写的快速,现代的静态网站生成器,旨在让网站创建再次变得有趣。主要用于个人Blog、项目文档、初创公司站点构建。

    官网:https://www.gohugo.org/

  • Solo

    Solo 是一款基于Java语言有后台管理的,小而美的博客系统,专为程序员设计

    官网:https://solo.b3log.org/

  • ==Halo==

    Halo是一款基于Java语言,使用Spring Boot开发的博客系统,致力于打造最好的 Java 博客系统,且只想安安静静的做一个博客系统。

    官网:https://halo.run/

    Github:https://github.com/halo-dev/halo

    Halo部署简单,尤其是使用docker部署,有后台管理系统,更换主题、发布文章(基于markdown)都很方便。是真的省心,适合小白。

    且支持markdown文档直接导入发表,简直不要太省心。

  • Jekyll

    Jekyll 是一个简单的博客形态的静态站点生产机器(可以将纯文本转换为静态博客网站)。

    官网:https://jekyllrb.com/

Hexo建站

参考:https://www.jianshu.com/p/451a2a69b30a

Hexo使用

  1. 安装Hexo
1
npm install -g hexo-cli
  1. 创建博客项目(新建一个目录)
1
2
3
hexo init <folder>
cd <folder>
npm install
  1. 新建文章(在新建的目录\source\_posts下面可以找到md文件)
1
hexo new [layout] <title>
  1. 生成静态文件
1
hexo generate
  1. 部署网站
1
hexo deploy

生成并部署可以简写为

1
hexo g -d

发布之前需要设置 web 目录下的_config.yml 文件

参考官网:https://hexo.io/zh-cn/docs/configuration

1
2
3
4
5
title: 小师的Blog
author: XiaoShi
language: zh-CN
url: http://xiaoshihd.gitee.io/xiaoshihd
root: /xiaoshihd

启动本地服务(访问网址为: http://localhost:4000/。)

1
hexo server 

清除缓存文件 (db.json) 和已生成的静态文件 (public)。

1
hexo clean

主题配置

可以在https://hexo.io/themes/挑选自己喜欢主题。

选择主题:https://github.com/theme-next/hexo-theme-next

下载压缩包放到blog下的themes目录下。

修改根目录的配置文件 _config.yml文件中的theme的值。(确保themes目录下的文件名和配置文件的名字一样即可)

image-20220422165248052

完成后重启服务:

1
2
3
hexo clean  # 清除所有记录
hexo generate # 生成静态网页
hexo server -p 80 # 启动服务,80为端口号

Next主题配置

针对的主题是:https://github.com/theme-next/hexo-theme-next

  • hexo 版本5.4.2
  • next 版本7.8.0

部分设置参考了:https://haomingzhang.com/hexo_1/

https://blog.csdn.net/awt_fudonglai/category_10191857.html

主要参考了https://www.cnblogs.com/codernice/p/11599105.html

黑白主题切换用的是这个:https://github.com/rqh656418510/hexo-next-darkmode

1
npm install hexo-next-darkmode --save

搜索功能用的是这个:https://github.com/wzpan/hexo-generator-search,生成索引文件search.xml

1
npm install hexo-generator-search --save

之后修改配置文件:

1
2
local_search:
enable: true

阅读时长统计:https://github.com/theme-next/hexo-symbols-count-time

1
npm install hexo-symbols-count-time

修改配置文件:

1
2
3
4
symbols_count_time:
separated_meta: true
item_text_post: true
item_text_total: false

最终页面如下:

image-20220423100621048

阿里云OSS

创建一个bucket存储桶

image-20220423105456156

创建AccessKey

image-20220423105328575

设置读写权限

image-20220423105244145

配置PicGo

image-20220423105532212

将Gitee图床的链接全部换成阿里云OSS

VSCode打开文件夹,替换:

1
https://gitee.com/xiaoshihd/MdPicture/raw/master/img

为:

1
https://xiaoshi-blog-img.oss-cn-beijing.aliyuncs.com/img

Gitee配置

Git插件安装

1
npm install hexo-deployer-git --save
  1. 新建一个仓库
1
https://gitee.com/xiaoshihd/xiaoshihd.git
  1. 修改配置文件
1
2
3
4
deploy:
type: 'git'
repo: https://gitee.com/xiaoshihd/xiaoshihd.git
branch: master
  1. 上传到git
1
hexo deploy
  1. gitee pages 网页解析服务(需要实名认证

image-20220422171131395

GitHub配置

GitHub Pages很简单,新建仓库命名为用户名.github.io

image-20220423111010868

设置里面看一下:

image-20220423111114712

我的hexo配置:

1
2
3
4
5
6
7
8
9
10
11
title: 小师的Blog
author: XiaoShi
language: zh-CN

url: https://xiaoshi-hd.github.io
root: /

deploy:
type: 'git'
repo: git@github.com:xiaoshi-hd/xiaoshi-hd.github.io.git
branch: master

Halo建站

我直接用的docker配置环境。

Halo 在 Docker Hub 上发布的镜像为 halohub/halo

  1. 创建 工作目录
1
mkdir ~/.halo && cd ~/.halo
  1. 下载示例配置文件到 工作目录
1
wget https://dl.halo.run/config/application-template.yaml -O ./application.yaml
  1. 编辑配置文件,配置数据库或者端口等,如需配置请参考 配置参考
1
gedit application.yaml
  1. 拉取最新的 Halo 镜像
1
docker pull halohub/halo:1.5.2

查看最新版本镜像:https://hub.docker.com/r/halohub/halo ,推荐使用具体版本号的镜像,但也提供了 latest 标签的镜像,它始终是最新的。

  1. 创建容器
1
docker run -it -d --name halo -p 8090:8090 -v ~/.halo:/root/.halo --restart=unless-stopped halohub/halo:1.5.2

注意:此命令默认使用自带的 H2 Database 数据库。如需使用 MySQL,请参考:使用 Docker 部署 Halo 和 MySQL

1
2
3
4
5
6
-it: 开启输入功能并连接伪终端
-d: 后台运行容器
--name: 为容器指定一个名称
-p: 端口映射,格式为 主机(宿主)端口:容器端口 ,可在 application.yaml 配置。
-v: 工作目录映射。形式为:-v 宿主机路径:/root/.halo,后者不能修改。
--restart: 建议设置为 unless-stopped,在 Docker 启动的时候自动启动 Halo 容器。

环境配置好之后会出现配置界面:

image-20220506115047732

配置完成后后台管理界面:

image-20220506120324891

写文章界面:

image-20220506122453308

博客界面:

image-20220506120610434