搭建个人博客
一般来说,想让别人能看到你的网站,你要购买域名、买服务器、再人工把网页文件传上去,还要装个 Nginx 之类的 web 服务器软件、修改软件配置等等,整套流程还是比较复杂的。
其他实现方式:
网站托管服务
网站托管实际上就是把自己的网站文件放在别人的服务器上,提供访问。国外的 Vercel、GitHub Pages,国内的 Webify、Gitee Pages都可以提供服务。(这里还是推荐GitHub吧,虽然国内访问慢一点,但是Gitee Pages 之前服务下架过 3 个月)
对象存储
对象存储可以将图片、音视频等文件放上去存储,也可以预览和下载已上传的文件。国内的对象存储服务有七牛云、腾讯云存储等。之前用过阿里云的OSS对象存储也不错,可以创建自己的博客图床。(这里说一下Gitee仓库图床,现在加了防盗链,不好用了,可以看https://blog.51cto.com/phyger/5181594)
内网穿透
内网穿透之前用过钉钉的一个工具,实际上就是利用钉钉的服务器做一个转发。内网穿透的话,自己电脑得一直开机,不推荐。
博客框架
开源博客框架有:
Hexo
Hexo 是一个基于Node.js的快速、简洁且高效的静态博客框架。Hexo 支持Markdown解析文章,在几秒内,即可利用靓丽的主题生成静态网页。
Hexo优点是直接使用markdown文档,不需要在后台编辑。
但是Hexo没有管理端,所以Hexo自身是依托于自己在本地配置好的环境,写好文章以后可以开启Server进行预览,没有问题以后通过git推送到仓库。需要一定的技术水平,不适合小白。但是这样也有优点,因为没有后台可以直接用github零成本建站。
主题等内容的修改需要手动配置yaml文件,真的很麻烦。
WordPress
WordPress是一款基于PHP语言的动态博客框架,能让你建立出色网站、博客或应用。用户可以在支持PHP和MySQL的服务器上架设属于自己的网站。用自己服务器建站的时候用过。
VuePress
Hugo
Hugo是一种用Go语言编写的快速,现代的静态网站生成器,旨在让网站创建再次变得有趣。主要用于个人Blog、项目文档、初创公司站点构建。
Solo
Solo 是一款基于Java语言有后台管理的,小而美的博客系统,专为程序员设计
==Halo==
Halo是一款基于Java语言,使用Spring Boot开发的博客系统,致力于打造最好的 Java 博客系统,且只想安安静静的做一个博客系统。
Github:https://github.com/halo-dev/halo
Halo部署简单,尤其是使用docker部署,有后台管理系统,更换主题、发布文章(基于markdown)都很方便。是真的省心,适合小白。
且支持markdown文档直接导入发表,简直不要太省心。
Jekyll
Jekyll 是一个简单的博客形态的静态站点生产机器(可以将纯文本转换为静态博客网站)。
Hexo建站
参考:https://www.jianshu.com/p/451a2a69b30a
Hexo使用
- 安装Hexo
1 | npm install -g hexo-cli |
- 创建博客项目(新建一个目录)
1 | hexo init <folder> |
- 新建文章(在新建的目录\source\_posts下面可以找到md文件)
1 | hexo new [layout] <title> |
- 生成静态文件
1 | hexo generate |
- 部署网站
1 | hexo deploy |
生成并部署可以简写为
1 | hexo g -d |
发布之前需要设置 web 目录下的_config.yml 文件
参考官网:https://hexo.io/zh-cn/docs/configuration
1 | title: 小师的Blog |
启动本地服务(访问网址为: 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目录下的文件名和配置文件的名字一样即可)
完成后重启服务:
1 | hexo clean # 清除所有记录 |
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 | local_search: |
阅读时长统计:https://github.com/theme-next/hexo-symbols-count-time
1 | npm install hexo-symbols-count-time |
修改配置文件:
1 | symbols_count_time: |
最终页面如下:
阿里云OSS
创建一个bucket存储桶
创建AccessKey
设置读写权限
配置PicGo
将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 | https://gitee.com/xiaoshihd/xiaoshihd.git |
- 修改配置文件
1 | deploy: |
- 上传到git
1 | hexo deploy |
- gitee pages 网页解析服务(需要实名认证)
GitHub配置
GitHub Pages很简单,新建仓库命名为用户名.github.io
设置里面看一下:
我的hexo配置:
1 | title: 小师的Blog |
Halo建站
我直接用的docker配置环境。
Halo 在 Docker Hub 上发布的镜像为 halohub/halo
- 创建 工作目录
1 | mkdir ~/.halo && cd ~/.halo |
- 下载示例配置文件到 工作目录
1 | wget https://dl.halo.run/config/application-template.yaml -O ./application.yaml |
- 编辑配置文件,配置数据库或者端口等,如需配置请参考 配置参考
1 | gedit application.yaml |
- 拉取最新的 Halo 镜像
1 | docker pull halohub/halo:1.5.2 |
查看最新版本镜像:https://hub.docker.com/r/halohub/halo ,推荐使用具体版本号的镜像,但也提供了 latest 标签的镜像,它始终是最新的。
- 创建容器
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 | -it: 开启输入功能并连接伪终端 |
环境配置好之后会出现配置界面:
配置完成后后台管理界面:
写文章界面:
博客界面: