对于程序员来说,如果只是写博客那太容易了,现在有很多的开源博客平台,如CSDN、简书、博客园、GitHub等平台。这些平台不仅可以自己写内容也可以分享别人的内容,对于爱写作的朋友来说很方便了。但是,这篇文章我们讲的不是如何写博客,而是基于开源博客平台搭建自己的博客平台。
国内外主流开源的博客平台目前国内外很多开源的博客平台,有基于Golang语言编写的,也有基于PHP、NodeJs等语言编写,目前,主流开源的博客平台主要有以下几个。

WordPress
WordPress是用PHP语言编写的开源的博客软件和内容管理系统,数据库采用Mysql。它具有插件架构和模板系统。目前排名前1000万的网站中超过30.6%使用WordPress。WordPress是最受欢迎的网站内容管理系统,也是当前因特网上最流行的博客系统。WordPress支持安装和切换主题。主题可让用户不改变博客内容和结构的情况下更改界面和WordPress站点的功能。主题可以在WordPress的“外观”管理工具中安装,或者通过FTP上传至主题文件夹。也可以通过编辑主题中的PHP和HTML代码自定义主题。WordPress有非常丰富的插件库,插件能使用户和开发者扩展WordPress程序的功能。当前WordPress插件数据库中有超过18000个插件,包括SEO、控件等等。
Ghost
Ghost是用JavaScript编写的博客平台,基于MIT许可证开放源代码。它的设计主旨是简化个人网站发布以及网上出版的过程。Ghost使用的语言是NodeJs,数据库采用MySQL,同时也支持MariaDB、SQLite和PostgreSQL。如果要部署到自己的服务器上,需要安装Nodejs。Ghost的默认语言是英文版的,但是有第三方的中文插件,Ghost提供开发插件的API和可以定制的Handlebars主题模板样式。
Hexo
Hexo 是一个快速、简洁且高效的博客框架。Hexo使用 Markdown(或其他渲染引擎)解析文章,在很短时间内就可以生成静态网页。Hexo也是使用NodeJs开发的,区别于WordPress和Ghost的是,Hexo是不需要数据库的,所以它是一个静态的博客系统,每一个博客都最终生成的是一个静态的Html,最后考Markdown语法来解析博客的内容格式。
以上三款是目前比较流行的开源博客系统,这三款博客系统都不是
基于Solo搭建自己的博客系统
Solo的GitHub地址是:
我们可以通过三种方式来搭建自己的博客系统。
1、下载它的压缩包解压,然后执行执行:java -cp "lib/:." org.b3log.solo.Server如果是windows系统,执行:java -cp "lib/;." org.b3log.solo.Server
就可以启动本地8080端口的服务,然后就可以本机访问打开博客系统。
2、Docker部署。Solo的镜像已经放到了DokkerHub上,我们可以通过docker pull b3log/solo 拉取镜像来启动服务。3、克隆源代码进行编译。这也是本文要讲的重点,通过克隆源代码,我们可以本地编译然后启动服务。这样我们可以阅读它的源代码,也可以基于自己的需求进行修改。本地编译启动Solo源代码GitHub克隆 solo代码:
Maven编译源代码:
Solo是基于Maven构建的,所以如果想要编译Solo源代码,需要本地安装Maven。如果本地已经有Maven环境,就可以直接在Idea中编译,如下图所示:
代码结构如下:
这是Java的核心代码,主要包括前台展示和后台管理系统的代码。
resource下都是静态资源文件,包括后台管理系统的前端页面、前端博客页面、css、js、皮肤等资源文件。目前的代码中有20中皮肤可供选择。
编译好代码以后我们就可以启动了,启动之前我们首先配置好数据库,数据里的配置文件是local.properties,根据自己的数据库来配置就行。
数据库配置好以后,就可以启动服务了,服务的启动的文件是Server.java,直接运行Main方法,就可以启动8080端口的服务。服务启动以后,系统会初始化Mysql的表,系统设计的表并不多,表结构如下所示:
启动成功以后,我们就可以登陆进入后台系统发布文章了,如下图所示:
博客效果页面如下图所示:
这是我选的一种一个皮肤,通过后台可以切换不同的皮肤。
最后至此,我们的博客系统就搭建好了,大家可以通过编译打包放到自己的服务器上,就可以让用户外网访问了。Solo博客的皮肤做的非常好,大家可以根据自己的喜好来选择一款属于自己的皮肤,部分皮肤效果如下图所示: