Solo小眾開源博客系統:手把手教你搭建自己的博客系統

阿邁達聊技術 發佈 2020-01-13T07:35:03+00:00

服務啟動以後,系統會初始化Mysql的表,系統設計的表並不多,表結構如下所示:啟動成功以後,我們就可以登陸進入後台系統發布文章了,如下圖所示:博客效果頁面如下圖所示:這是我選的一種一個皮膚,通過後台可以切換不同的皮膚。

博客是很多程式設計師朋友的最愛,通過博客可以梳理自己的技術體系,將自己日常開發過程中的技術心得或者對於一個技術問題的解決思路記錄下來,對於以後碰到此類問題有一個參考的作用。同時,博客系統的內容是對外的,我們可以將自己的博客內容分享出去增加自己的知名度。現在很多面試官第一句話就是:「你寫博客嗎?」,如果你沒有博客那不就尷尬了。之前阿里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博客的皮膚做的非常好,大家可以根據自己的喜好來選擇一款屬於自己的皮膚,部分皮膚效果如下圖所示:


關鍵字: