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
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=/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
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
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
<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>
# 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
# 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.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
# 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
# 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