post | sidebar | footer

September 29, 2005

Roller 的架設

Roller 是一個以 JSP 當前端語言,java 當後端的 Blog 出版工具。整個程式以 hibernate(2.0) + struts(1.1) + velocity(1.4) 為架構所建構而成。資料庫部分,主要支援 HSQL、MySQL 及 PostgreSQL,但依然可以透過 JDBC 與其他資料庫做溝通。

環境

01. 系統:RedHat Enterprise Linux v3

02. WEB Server:Tomcat 5.5.7 (patch 5.5.9)

03. JAVA:J2SDK 1.4.2_09

04. Database:Oracle 9i


套件

01. Roller

檔案:roller-src-1.2.tar.gz

下載路徑:
https://roller.dev.java.net/files/documents/190/16701/
roller-src-1.2.tar.gz


檔案:roller-tools-1.2.tar.gz

下載路徑:
https://roller.dev.java.net/files/documents/190/16699/
roller-tools-1.2.tar.gz


步驟

因為 oracle 資料庫的關係,我們下載原始檔下來,重新 complier。

01. mv *.tar.gz /home

把 roller-src-1.2.tar.gz、roller-tools-1.2.tar.gz,移到 /home 中。

02. tar zxvf roller-src-1.2.tar.gz

解開 roller-src-1.2.tar.gz,會新增一個 roller-src-1.2 的資料夾。

03. tar zxvf roller-tools-1.2.tar.gz

解開 roller-tools-1.2.tar.gz,會新增 tools 的資料夾。

04. mv -rf tool /home/roller-src-1.2

將 tools 資料夾,移到 /home/roller-src-1.2 裡。

05. rm *.tar.gz

刪除 roller-src-1.2.tar.gz、roller-tools-1.2.tar.gz。

06. 將 roller complier 一次。


資料庫

由於 Roller 沒有直接支援 Oracle 所以我們要對他提供的 createdb.sql 做些修改。其中要注意 comment 這個 table,因為 comment 是 oracle 的保留字,所以要改名字(commentt),並在roller/WEB-INF/classes/org/
roller/pojos/CommentData.hbm.xml 裡在 class 標籤裡的 table 改成 commentt。另外有幾個欄位的 datatype 為 bit、text 及 timestamp 也要改成 number(1)、clob 及 date,有幾個欄位 Roller 預設 index 名稱超過 30 個字的也要修改一下。

01. 在 Oracle 9i 新增一個 DB,命名為 Roller。

02. 依照這一個 script 檔新增表格。


TOMCAT 設定

下載這一個設定檔,放在 roller/conf/Catalina/localhost/ 裡,並修改 roller webapp 的絕對路徑、oracle 資料庫的 IP、port、帳號及密碼。


Roller 的設定

由於 Roller 是用 Hibernate 跟資料庫做溝通,我們要在 Hibernate 中做好與 oracle 的溝通設定。

請下載這一個設定檔,放到 roller/webapp/WEB-INF/classes/,並修改 oracle 資料庫的 IP、port、帳號及密碼。


處理 clob 格式欄位

因為 Oracle 不支援 text,我們將格式轉為 clob,所以我們要處理將資料塞進 clob 的問題。

01. 請將 這一支程式放到 roller/webapp/WEB-INF/classes/org/roller/util 中。

02. 把 CommentData.hbm.xmlEntryAttributeData.hbm.xml


PageData.hbm.xmlPlanetEntryData.hbm.xml


PlanetGroupData.hbm.xmlRefererData.hbm.xml


RollerConfigData.hbm.xmlRollerPropertyData.hbm.xml


WeblogEntryData.hbm.xmlWebsiteData.hbm.xml,放到 roller/webapp/WEB-INF/classes/org/roller/pojos 內,蓋過原本的檔案。



啟動

重新啟動兩次,第一次會將設定檔裡的資料寫進資料庫,第二次啟動便會抓的到資料庫裡的資料了。


設定檔

01. webapp/WEB-INF/classes/rollerRuntimeConfigDefs.xml

整個站的站名、敘述、絕對位址、管理者的 E-MAIL、文章編輯器種類等等,第一次啟動便是將這邊的資料存進資料庫。

02. webapp/WEB-INF/classes/hibernate.cfg.xml

關於 hibernate 的設定,與 oracle 的溝通、相關檔案的連結路徑等等。

03. webapp/WEB-INF/struts-config.xml

struts 的相關路徑設定。

04. webapp/WEB-INF/roller-config.xml

關於 roller 使用者的預設設定。


常會發生的問題

01. tomcat 與 oracle 之間的溝通,請注意 tomcat、oracle 及 java 間的版本配合問題。

02. hibernat 裡關於 oracle 的設定方式。

03. oracle 可以連到,tomcat 也沒問題了,但是出現以下的狀況,就是資料庫欄位格式的關係。

  a. 一連進 roller 即出現 error message。

  b. 無法登入 roller ,出現 帳號與密碼不符的訊息。

  c. 不能更換 template,會出現 error message。


其餘 java 環境及系統方面的問題,請自行注意。


No comments: