天天看點

如何快速部署國人開源的 Java 部落格系統 Tale

除了悶頭專研技術之外,程式員還需要不斷地寫作進行技術積累,寫部落格是其中最重要的方式之一。商業部落格平台不少,但是更符合程式員背景的方案,是自己開發一個部落格平台或者使用開源的部落格平台。

開源的部落格平台多如牛毛,而且不乏優秀之作,如 Hexo、Octopress、Jekyll、Wordpress。本系列文章将分享如何利用各種部落格引擎在雲端搭建屬于自己的個人部落格。上篇介紹了 《Ubuntu 14.04 伺服器上部署 Hexo 部落格》,今天這一篇,介紹如何快速部署一個國人用 Java 開發的部落格系統。

前幾天,在社群看到有國人開發者開源了用 Java 寫的一個部落格系統 Tale。從作者放出的 Demo 站點來看,效果還是不錯的。正好最近在整理一些好用的部落格引擎,今天正好研究了一下如何部署 Tale。

作者王爵在 Github 提供了一份簡單的部署指南,主要包括安裝 JDK8、安裝 MySQL、建立資料庫、下載下傳并運作 Tale 等步驟。但是實際在部署時,發現這份指南缺少許多細節,而且也會碰到一些問題。我們一步一步來看。

在部署一個部落格網站之前,你必須要有一台雲伺服器,否則隻能在本地嘗嘗鮮,無法真正使用。筆者經常使用的是騰訊雲提供的 CVM 雲伺服器,推薦給大家。

作業系統建議安裝 Ubuntu 14.04。下文将以該系統為例,介紹具體的部署過程。

Tale 是用 Java 語言編寫的部落格系統,是以必須先安裝 JDK8。雲伺服器的系統是 Ubuntu 14.04,你可以選擇直接從 Oracle 的網站下載下傳針對 Linux 的安裝包,但筆者推薦一個更加簡便的方法:通過 PPA 安裝。

首先,添加 webupd8team/java PPA 倉庫到系統中,然後再通過 apt 安裝 Java 8。具體指令如下:

安裝結束之後,我們驗證是否成功:

如果出現類似如下輸出,說明成功安裝:

然後,還需要配置一下 Java 環境。在上文安裝 Java 8的過程中,應該已經安裝了 oracle-java8-set-default 包。我們運作如下指令確定已經安裝成功:

最後,配置一些相關的環境變量:

根據官方的指南,Tale 使用的是 MySQL 資料庫,是以第二步就是在雲伺服器上自建建一個 MySQL 資料庫。如果你希望更強大的資料庫性能,可以選擇雲廠商提供的雲資料庫:CDB for MySQL。

自建 MySQL 還是比較簡單的,隻要依次執行如下指令,就可以安裝好 MySQL 并完成安全設定。

在安裝的過程中,注意設定好 root 使用者的密碼。為了友善,此次部署部落格過程中直接使用 root 使用者。在最後的 tale 安裝過程中,要求填寫 MySQL 資料庫的 IP 和使用者名及密碼。

第三步,我們以 root 使用者身份連接配接到 MySQL,然後建立名為 tale 的資料庫。

建立資料庫的指令為:<code>create database</code>tale<code>default character set utf8 collate utf8_general_ci;</code>。

接下來,可以下載下傳 Tale 的源代碼了。

tale 目錄下包含以下檔案:

通過 java 指令運作 tale-1.0.jar 檔案,即可啟動部落格系統。

成功運作以上指令後 ,輸出大緻如下:

最後一行顯示,Tale 部落格使用的 Blade 伺服器正在監聽 127.0.0.1:9000。但是,我們怎樣才能通路雲伺服器上的這個位址呢?

從第五步開始,是 Tale 的作者沒有在 Github 的指南中說明的。接下來,我們使用 Nginx 作為一個反向代理伺服器,來通路 Tale。

我們修改 Nginx 的 <code>default</code> 設定:

修改其中的 location / 部分,并注釋掉某些行,具體見下面的示例:

儲存并退出檔案。然後重新開機 Nginx 服務即可。

現在我們通路雲伺服器的 IP 位址時,就會進入 Tale 的安裝頁面。

如何快速部署國人開源的 Java 部落格系統 Tale
如何快速部署國人開源的 Java 部落格系統 Tale

如果手動執行 <code>java -jar tale-1.0.jar</code> 指令,那麼結束終端會話時就必須要退出 tale 程序。為了讓網站能夠長時間通路,我們需要讓該指令一直在背景自動運作,最好是支援系統重新開機時自動啟動。是以,我們可以将 tale 變成一個系統服務。

建立 <code>/etc/init/tale.conf</code> 檔案,寫入如下内容:

上面定義了該服務在 runlevel 為 2、3、4、5 時啟動,而在非這幾個 runlevel 時停止該服務。

運作級别0:系統停機狀态,系統預設運作級别不能設為0,否則不能正常啟動 運作級别1:單使用者工作狀态,root權限,用于系統維護,禁止遠端登陸 運作級别2:多使用者狀态(沒有NFS) 運作級别3:完全的多使用者狀态(有NFS),登陸後進入控制台指令行模式 運作級别4:系統未使用,保留 運作級别5:X11控制台,登陸後進入圖形GUI模式 運作級别6:系統正常關閉并重新開機,預設運作級别不能設為6,否則不能正常啟動

配置好了 <code>tale.conf</code> 檔案之後,就能夠通過如下指令啟動、停止和重新開機 tale 部落格了:

至此,就完成了在雲伺服器(或雲主機)上部署 Tale 開源部落格系統的整個過程。

簡單體驗了下前背景,部落格基本的功能都具備了,而且速度上确實挺快的。不過目前的主題樣式還比較單一,需要社群其他開發者的貢獻。

如何快速部署國人開源的 Java 部落格系統 Tale

另外回報一個問題給作者:部落格背景的系統設定中,有關閉「允許重新安裝」的選項,這個預設設定為「關閉」了。但是實際還是能夠進入安裝頁面,如果有網友能夠猜出部落客的資料庫使用者名和密碼的話,估計就能把對方的部落格給一鍋端了。