練功房推薦書單

  • 猛虎出柙雙劍合璧版--最新 OCA / OCP Java SE 7 Programmer 專業認證 (電子書)
  • 流浪教師存零股存到3000萬(全新增修版)(書+DVD)
  • 開始在關西自助旅行(京都‧大阪‧神戶‧奈良)(全新增訂版)
  • 不敗教主的300張股票存股術

OLAT 6.1.1安裝筆記(CentOS 5.3 + PostgreSQL 8.1.11 + Tomcat 6.0.18 + Openfire 3.6.4) RSS feed
討論區首頁 » OLAT中文社群 OLAT Chinese Users Community
發表人 內容
andowson

七段學員
[Avatar]

註冊時間: 2007/1/2
文章: 711
來自: 台北
離線
OLAT 自6.1.0版起開始支援Cluster架構和更容易引進多國語言的翻譯工具,最近更新的6.1.1版,修正了很多新版剛發行時的bug,如修正了一些正體中文註冊連結的問題,因此,我比較推薦安裝這個版本。底下是整個全新安裝的步驟。

一、設計理念
OLAT是一個網頁應用系統,可以在Tomcat上安裝及執行,後端可以接MySQL或PostgreSQL或其他Hibernate支援的資料庫,如果要執行聊天室功能,我們還需要安裝Openfire,如果要支援Cluster,還要安裝JMS Server(如ActiveMQ)。由於設備有限,我以全部安裝在單部主機(CentOS 5.3 Linux)方式介紹,不考慮Cluster的模式。

我們預計安裝OLAT的目錄是/home/andowson/www/olat,底下如未特別聲明,均是以andowson身份執行(具有sudo權限)。

我們預計安裝下列元素:
1. JDK+Apache+Tomcat+mod_jk
2. PostgreSQL
3. Ant
4. Openfire
5. OLAT

二、實作步驟
1.可以參考這篇文章完成:http://www.andowson.com/posts/list/315.page,並參考這篇http://www.andowson.com/posts/list/309.page建立一個Virtual Host,在此就不浪費篇幅。
2.PostgreSQL的安裝及啟動可以透過下列的指令來完成(以root身份執行):

yum -y install postgresql-server
sed -i -e "s/#listen_addresses = 'localhost'/listen_addresses = '*'/g" /var/lib/pgsql/data/postgresql.conf

sed -i -e "s/local all all ident sameuser/local all all trust/g" /var/lib/pgsql/data/pg_hba.conf
sed -i -e "s/host all all 127.0.0.1\/32 ident sameuser/host all all 127.0.0.1\/32 md5/g" /var/lib/pgsql/data/pg_hba.conf
sed -i -e "69a\host all all 192.168.1.0\/24 md5" /var/lib/pgsql/data/pg_hba.conf

chkconfig --level 235 postgresql on
service postgresql start

3.Ant安裝也很簡單,只需要下載並解壓縮即可,這裡我們以安裝1.7.1版為例

cd ~/download
wget http://apache.ntu.edu.tw/ant/binaries/apache-ant-1.7.1-bin.tar.gz
sudo tar zxvf apache-ant-1.7.1-bin.tar.gz -C /usr/local

接著設定環境變數ANT_HOME
vi ~/.bash_profile

ANT_HOME=/usr/local/apache-ant-1.7.1
JAVA_HOME=/usr/java/latest
PATH=$PATH:$HOME/bin:$ANT_HOME/bin:$JAVA_HOME/bin

export PATH ANT_HOME JAVA_HOME

執行source將設定載入
source ~/.bash_profile

4.安裝Openfire(以root身份執行):

cd /root/setup
wget http://www.igniterealtime.org/downloadServlet?filename=openfire/openfire-3.6.4-1.i386.rpm
rpm -ivh openfire-3.6.4-1.i386.rpm
chmod 755 /opt/openfire

建立資料庫openfire

sudo -u postgres psql -c "CREATE USER openfire WITH ENCRYPTED PASSWORD 'openfire' VALID UNTIL 'infinity' CREATEDB;" template1
sudo -u postgres psql -c "CREATE DATABASE openfire WITH ENCODING 'UNICODE';" -U openfire template1
sudo -u postgres psql -c "ALTER USER openfire NOCREATEDB;" template1
sudo -u postgres psql openfire openfire -f /opt/openfire/resources/database/openfire_postgresql.sql

手動設定設定檔openfire.xml,將下列設定貼在</jive>之前
vi /opt/openfire/conf/openfire.xml

<connectionProvider>
<className>org.jivesoftware.database.DefaultConnectionProvider</className>
</connectionProvider>
<database>
<defaultProvider>
<driver>org.postgresql.Driver</driver>
<serverURL>jdbc:postgresql://localhost:5432/openfire</serverURL>
<username>openfire</username>
<password>openfire</password>
<testSQL>select 1</testSQL>
<testBeforeUse>true</testBeforeUse>
<testAfterUse>true</testAfterUse>
<minConnections>1</minConnections>
<maxConnections>25</maxConnections>
<connectionTimeout>1.0</connectionTimeout>
</defaultProvider>
</database>
<setup>true</setup>

調整openfire在系統開機時自動啟動的順序(要在PostgreSQL之後,Tomcat之前)
sed -i -e "s/99 1/80 20/g" /etc/init.d/openfire
調整openfire啟動時的JVM參數
sed -i -e "s/-server/-server -Xss256k/g" /etc/init.d/openfire
設定開機自動啟動openfire
chkconfig openfire on
啟動openfire
service openfire start

啟動之後,開啟瀏覽器到http://<your_server_name>:9090/,以admin/admin登入
調整一些系統設定,如mail server,不允許使用者建立帳號跟修改密碼等
接著下載OLAT plugin
http://www.olat.org/downloads/stable/olatUserAndGroupService.jar
然後切換到Plugin頁面,將這個jar檔匯入即可。

注意:如果您有設定iptables或其他防火牆,建議先關閉,等測試沒問題後再打開,並增加Openfire所需要的port。

5.終於到了主菜了,安裝OLAT,我們需要先下載OLAT原始碼的壓縮檔,解壓縮,建立build.properties,然後再執行ant config-all, ant build來編譯。

# get OLAT source
cd ~/download
wget http://www.olat.org/downloads/stable/OLAT-6.1.1.zip
unzip OLAT-6.1.1.zip
mv OLAT-6.1.1-PUBLIC-* olat3
cd olat3
# config build.properties
sed -e "s/\/usr\/local\/opt\/olat\/olat3/\/home\/andowson\/download\/olat3/g" \
-e "s/\/usr\/local\/opt\/olat\/olatdata/\/home\/andowson\/data\/olatdata/g" \
-e "s/\/usr\/local\/opt\/tomcat/\/var\/tomcat6/g" \
-e "1,$$s/www.myolat.com/www.andowson.com/g" \
-e "1,$$s/myolat.com/andowson.com/g" \
-e "1,$$s/myolat/andowson/g" \
-e "s/server.modjk.enabled=false/server.modjk.enabled=true/g" \
-e "55a\server.modjk.jvmRoute=worker1" \
-e "s/defaultcharset=ISO-8859-1/defaultcharset=UTF-8/g" \
-e "s/registration.enableNotificationEmail=false/registration.enableNotificationEmail=true/g" \
-e "s/smtp.host=smtp.andowson.com/smtp.host=smtp.yourcompany.com/g" \
-e "s/smtp.user=/smtp.user=username/g" \
-e "s/smtp.pwd=/smtp.pwd=password/g" \
-e "120,142d" \
-e "1,$$s/#db/db/g" \
-e "1,$$s/net.sf.hibernate/org.hibernate/g" \
-e "s/instantMessaging.enable=false/instantMessaging.enable=true/g" \
-e "s/instantMessaging.server.name=jabber.andowson.com/instantMessaging.server.name=www.andowson.com/g" \
-e "s/instantMessaging.db.name=wildfire/instantMessaging.db.name=openfire/g" \
-e "s/instantMessaging.db.user=wildfire/instantMessaging.db.user=openfire/g" \
-e "s/instantMessaging.db.pass=wildfire/instantMessaging.db.pass=openfire/g" \
-e "s/cluster.catalinaport=8006/cluster.catalinaport=8105/" \
-e "s/cluster.ajpport=8009/cluster.ajpport=8109/" build.properties.default > build.properties
# adjust the original template config files
sed -i -e "s/<enabledLanguages>en,de,fr,it,es<\/enabledLanguages>/<enabledLanguages>en,de,fr,it,es,zh_CN,zh_TW<\/enabledLanguages>/g" ~/download/olat3/webapp/WEB-INF/olat_config.xml.in
sed -i -e "1,$$s/olat-newinstallation.org/andowson.com/g" ~/download/olat3/webapp/WEB-INF/olat_config.xml.in
sed -i -e "13c\ <\!-- default session timeout -->" ~/download/olat3/webapp/WEB-INF/web.xml.in
ant config-all
ant build

接著我們需要先建立一個olat的資料庫再來執行ant dbsetup_postgreSQL。
# create database olat and testdb

sudo -u postgres psql -c "CREATE USER olat WITH ENCRYPTED PASSWORD 'olat' VALID UNTIL 'infinity' CREATEDB;" template1
sudo -u postgres psql -c "CREATE DATABASE olat WITH ENCODING 'UNICODE';" -U olat template1
sudo -u postgres psql -c "CREATE DATABASE testdb WITH ENCODING 'UNICODE';" -U olat template1
sudo -u postgres psql -c "ALTER USER olat NOCREATEDB;" template1

這裡要注意的是PostgreSQL 8.2之前的版本尚未支援drop table if exists這種語法,因在CentOS 5.3發行的是PostgreSQL 8.1.11的版本,由於執行dbsetup_postgreSQL時會先執行deleteDatabase.sql,第一次安裝時由於資料庫是空的,會失敗,故我們需要修正一下deleteDatabase.sql裡面的語法。我們可以先將deleteDatabase.sql換成一個空檔,等第一次建立好table後再換回來。另外第一次啟動時也會執行alter_6_0_x_to_6_1_0.sql,故我們也要同步修正這邊的drop table if exists語法。

# PostgreSQL 8.1 doesn't support if exists
sed -i -e "1,$$s/if exists //g" ~/download/olat3/database/postgresql/deleteDatabase.sql
sed -i -e "1,$$s/if exists //g" ~/download/olat3/database/postgresql/alter_6_0_x_to_6_1_0.sql

# First time install, drop table will fail, use an empty file instead
mv ~/download/olat3/database/postgresql/deleteDatabase.sql ~/download/olat3/database/postgresql/deleteDatabase.sql.bak
touch ~/download/olat3/database/postgresql/deleteDatabase.sql
ant dbsetup_postgreSQL
mv ~/download/olat3/database/postgresql/deleteDatabase.sql.bak ~/download/olat3/database/postgresql/deleteDatabase.sql


接著就可以把編譯好的程式及網頁部署到我們的目的資料夾~/www/olat了,另外OLAT是把程式跟資料分開存放的,這樣子將來要升級新版只要換掉程式碼的目錄即可,我們選定~/data/olatdata作為這個目錄。由於OLAT會將一些檔案解壓縮到static和WEB-INF下,所以記得變更目錄的寫入權限。

# deploy to web directory
cp -rf ~/download/olat3/webapp ~/www/olat
cp -rf ~/download/olat3/htdocs/* ~/www/olat
sudo chgrp -R tomcat ~/www
sudo chgrp -R tomcat ~/data/olatdata
sudo chmod 775 ~/www/olat/static
sudo chmod 775 ~/www/olat/WEB-INF
sudo chmod 775 -R ~/data/olatdata

最後,我們要設定讓Apache將/olat開頭的網址交給Tomcat處理,然後重新啟動Tomcat和Apache。

# add httpd handle setting
echo '/olat/*=loadbalancer' >> /etc/httpd/conf/uriworkermap.properties
sudo /etc/init.d/tomcat stop
sudo killall -9 /usr/java/latest/bin/java
sudo /etc/init.d/tomcat start
sudo /etc/init.d/httpd restart


到此,差不多大功告成了,用administrator/olat登入http://<your_server_name>/olat/dmz/吧!如果可以的話,建議先修改一下密碼再往下進行新的任務囉!

分享經驗 累積智慧
[WWW]
 
討論區首頁 » OLAT中文社群 OLAT Chinese Users Community
前往:   
行動版