博客是很多程序员朋友的最爱,通过博客可以梳理自己的技术体系,将自己日常开发过程中的技术心得或者对于一个技术问题的解决思路记录下来,对于以后碰到此类问题有一个参考的作用。同时,博客系统的内容是对外的,我们可以将自己的博客内容分享出去增加自己的知名度。现在很多面试官第一句话就是:“你写博客吗?”,如果你没有博客那不就尴尬了。之前阿里P10赵海平面试王垠的时候,不就是翻了王垠的所有博客并且还“嘲弄”了一番吗?

对于程序员来说,如果只是写博客那太容易了,现在有很多的开源博客平台,如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语法来解析博客的内容格式。

以上三款是目前比较流行的开源博客系统,这三款博客系统都不是小编的选择,本文选择是一款小而美的国内开源博客系统,它采用Java语言开发,使用Mysql数据库存储数据,具有丰富的主题库,它就是Solo。

Solo小而美的博客系统

Solo是国内个人开源的一个小而美的博客系统,采用Java+Mysql开发,专门为程序员设计。它是B3log社区的主要组成部分,B3log目前主要有三个部分组成:

  • Solo 是独奏,Solo是独立博客系统,在音乐中相当于不同乐器演奏不同的声音
  • Rhythm 是节奏,用来让不同博客客户端和社区进行协同合奏,相当于音乐中的节拍器
  • Symphony 是交响乐,Symphony 以论坛的方式交互,聚合个人博客,需要很多人协同参与才能奏出美妙的乐章。

B3log 名字来源于“Bulletin Board Blog”缩写,目标是将个人独立博客与论坛结合,形成下一代的分布式社区网络。

基于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博客的皮肤做的非常好,大家可以根据自己的喜好来选择一款属于自己的皮肤,部分皮肤效果如下图所示:

个人博客代码_Solo小众开源博客系统:手把手教你搭建自己的博客系统相关推荐

  1. 手把手教你搭建个人技术博客,半小时搞定

    一.写在前面 我是猿人,一个热爱技术.热爱编程的IT猿.技术是开源的,知识是共享的! 写作是对自己学习的总结和记录,如果您对Java.分布式.微服务.中间件.Spring Boot.Spring Cl ...

  2. 写博客原来对程序员这么有用!手把手教你应该如何写博客

    写博客的好处 面试加分 最重要 的一点放在第一位,写优质的博客可以让面试官看到你的学习过程,包括你对知识的掌握,和总结能力.现在社会上太多从培训班出来的人,很多面试管都不喜欢这一类"走捷径& ...

  3. 【Linux】手把手教你搭建自己个人博客(boss版)

    文章目录 前言 环境 搭建LAMP架构 一 . 编译apache 1. 安装依赖包 a. 安装环境依赖 b. 编译安装依赖包apr c. 安装apr-util依赖包 d. 安装pcre依赖包 2. 开 ...

  4. 零成本 | 手把手教你搭建免费个人博客!

    目录 搭建博客步骤 GitHub创建个人仓库 配置 SSH key 将hexo部署到GitHub 发布第一篇博客 设置域名 结语 搭建博客步骤 1.本次实验使用 CentOS 7.7 [root@ql ...

  5. 如何搭建自己的博客网站(手把手教你搭建免费个人博客网站)

    没有前言直接开始正文,搭建一个博客需要服务器,域名,博客程序. 博客程序常用的有wordpress,z-blog,typecho等等,其中wordpress和z-blog最为简单,typecho需要一 ...

  6. 手把手教你搭建惊艳的博客

    系列文章目录 第一章 手把手教你搭建自己的博客 文章目录 系列文章目录 前言 一.网站软件的选择 二.网站空间的选择 1. 建议选择有名.大厂的 2. 上手容易,丰富而详实的文档 3. 要稳定,少出问 ...

  7. 【建站】手把手教你搭建惊艳的博客

    系列文章目录 第一章 手把手教你搭建自己的博客 文章目录 系列文章目录 前言 一.网站软件的选择 二.网站空间的选择 1. 建议选择有名.大厂的 2. 上手容易,丰富而详实的文档 3. 要稳定,少出问 ...

  8. 手把手教你搭建一个属于自己的Ghost博客

    介绍 Ghost 是基于 Node.js 的开源博客平台,由前 WordPress UI 部门主管 John O'Nolan 和 WordPress 高级工程师(女) Hannah Wolfe 创立, ...

  9. 手把手教你搭建属于自己的技术博客(小白教程)

    手把手教你搭建属于自己的技术博客 先放上我自己搭建的博客地址 https://sourl.cn/Tbk7yt 这里我使用的是 Hexo 框架 以及 Github pages 进行的搭建 文章目录 手把 ...

最新文章

  1. 常识知识确能被捕获,西湖大学博士探究BERT如何做常识问答
  2. dart正则替换手机号中间四位为*
  3. [python opencv 计算机视觉零基础到实战] 十一找到图片中指定内容
  4. apollo报:系统出错,请重试或联系系统负责人
  5. (pytorch-深度学习)门控循环单元(GRU)
  6. 字体图标的使用(HTML、CSS)
  7. 十二个经典的大数据项目
  8. Arduino循迹小车教程三----测试小车篇
  9. houdini 破解失败
  10. 随便说说,中国开发人员的不同层次和一些思考。
  11. 《电脑音乐制作实战指南:伴奏、录歌、MTV全攻略》——2.2 能知旋律但不知歌名,使用哼唱搜索来找歌...
  12. 服务器的显示器无信号怎么解决办法,显示器无信号怎么办?显示器无信号解决办法大全...
  13. Direct3d纹理
  14. uk码对照表_尺码UK5 对应的中国尺码是多少?
  15. 3手机版怎么换行_敬业签手机版便签软件怎么绑定QQ或微信互联登录?
  16. android系统定制添加分辨率,density设置
  17. 浅谈自然语言处理(NLP)和 自然语言理解(NLU)
  18. android java 线程通信_Android 线程间通信
  19. 【拓展】编程语言中的“前浪”和“后浪”
  20. 我TM吹爆 VIM - 安装入门,部署

热门文章

  1. 中国系统集成商名单大全
  2. Windows程序闪退Windows日志捕获Kernelbase模块错误
  3. C#完美任意设置webBrowser框架默认的IE内核版本
  4. C#--WinForm项目主窗体设计
  5. 关于bootstrap的treeview不显示多选(复选框)的问题,以及联动选择的问题,外加多选后取值...
  6. SQL Server 行转列,列转行。多行转成一列
  7. Spring bean配置继承
  8. windows mysql提示:1045 access denied for user 'root'@'localhost' using password yes 解决方案
  9. 在使用模板时遇到的错误,TypeError at /index/ context must be a dict rather than RequestContext(亲测)
  10. 随机森林与梯度提升树