This chapter describes the installation of OLAT for those wishing to use OLAT in a test or production environment. If you are a developer then please skip this section and proceed to Section 2.3, “Developer Installation” where the installation process for an Eclipse IDE environment is described (please see the specific notes regarding Eclipse and WTP found in developer installation instructions!) If you are a deployment manager then we suggest that you review the Operations chapter to consider additional installation and configuration details. This installation process has been tested on Linux, MacOSX and Windows systems. Our production systems run on Linux and use JDK 1.6.x, Tomcat 6.x, MySQL 5.x and the latest Openfire 3.4.x
The following are the necessary steps for installation:
The database user and the olat database needs to be created. Please refer to the scripts initDatabase.sql and setupDatabase.sql, which
are located in the olat3\webapp\WEB-INF\classes\resources\database. For MySQL the steps are as follows:
Create the database and user manually. (use your user and password instead of olat and olatpwd)
# mysql -u root -p On the console run the following SQL-statements: # use mysql; # mysql> create database olatdb; # mysql> create user 'olatdb'@'localhost' identified by 'olatpwd'; # mysql> grant all on olatdb.* to 'olat'@'localhost' identified by 'olatpwd'; # mysql> flush privileges;
On the console run the script:
>> mysql -u olat -p olatdb < setupDatabase.sql
The webapp/WEB-INF/src/serviceconfig/olat.properties file contains settings required to build and install OLAT most of which
you will seldom, if ever, need to change. The olat.local.properties file
contains those configuration settings you are most likely going to need to change for your environment.
Begin by making an empty olat.local.properties save it to /yourTomcatDir/lib or an other place on your classpath.
Review the olat.properties contents and amend them as appropriate for your local environment.
Please note that OLAT application directories will be created for you during the build for which the build user account must have sufficient access rights. Pre-existing directories will not be removed though their contents may become overwritten.
The follow remarks apply to the local properties (note that other parameters not cited here are chiefly of relevance to developers):
Table 2.1. Local configuration properties
userdata.dir | This should be set to an appropriate application data location. A typical choice on a Linux system would be
/var/lib/olat.
|
archive.dir | A typical choice is ${userdata.dir}/archive.
|
log.dir | A typical choice is ${userdata.dir}/logs.
|
upgrade.dir | A typical choice is ${userdata.dir}/upgrades.
|
folder.root | A typical choice is ${userdata.dir}/bcroot.
|
temp.dir | A typical choice is ${userdata.dir}/tmp.
|
smtp.* | Mail settings for your local SMTP agent (typically an MTA such as Sendmail, Postfix or Exim) Without these settings your OLAT instance will be unable to issue emails. You must sent email addresses for admin and support emails. |
instance.id | This is an internal instance identifier used by OLAT and should only be changed in the event that several instances are deployed within a single cluster. |
db.* | The database settings are mostly self explanatory and refer to the database server that will host the OLAT database. |
The following MySQL configuration parameters should be applied to your server configuration file
(i.e., my.cnf)
Table 2.2. MySQL configuration file parameters.
default-storage_engine | This must be set to innodb and applies to all OLAT tables (unless
the table definition states otherwise) |
transaction-isolation | This must be set to READ-COMMITTED which denies opportunity for dirty
reads and represents the optimal choice for an OLTP system. This is a required setting
for OLAT.
|
innodb_data_home_dir | This establishes the tablespace for your OLAT database which you can place under your MySQL data directory. You must create this directory yourself before starting the MySQL instance. We recommend a dedicated tablespace for OLAT and hence a dedicated MySQL instance. |
innodb_log_group_home_dir | This establishes the logfiles for your OLAT database which you can place under
your MySQL data directory i.e., datadir in a directory called olatlogs
We recommend dedicated logfiles for OLAT and hence a dedicated MySQL instance. For heavy loads
you may consider locating these files on a separate partition or volume.
You must create this directory yourself before starting the MySQL instance.
|
innodb_flush_log_at_trx_commit |
When set to 1 this flushes the log buffer to the log file with each commit and a
a disk write is performed. This is a reasonable default value for OLAT which ensures ACID
compliance though you may wish to review other possible values depending on your
circumstances.
|
innodb_buffer_pool_size | Generally speaking we recommend a value of c. 1024M for production systems though a (considerably)
smaller value is appropriate for trial instances |
innodb_additional_mem_pool_size | This should be set to 20M and is required exclusively for the data dictionary and related matters. |
log-bin, expire_logs_days | We strongly recommend that you make use of binary logging and that you retain binary logs for a reasonable period of time (e.g., 5-7 days) See MySQL documentation for further details. |
Put your customized log4j.xml file to tomcat/lib directory. Example file :
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false" threshold="all">
<!--
This file gets only used if you overwrite the file in WEB-INF/classes with this one or by specifing a java system property.
Overwrite it with -Dlog4j.configuration="file:/tmp/mylog4j.xml" (java system property) and specifie a path for your logging config.
-->
<!-- CONSOLE appender defined in case it is ever needed -->
<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c{1} %x - %m%n"/>
</layout>
</appender>
<appender name="DebugLog" class="org.apache.log4j.DailyRollingFileAppender">
<param name="File" value="/olatapps/olatng/logs/thishost/tomcat/olatng99/olat.debug.log"/>
<param name="DatePattern" value="'.'yyyy-MM-dd"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c{1} %x - %m%n"/>
</layout>
</appender>
<!-- this is not UNIX syslog but instead the standard olat logging -->
<appender name="syslog" class="org.apache.log4j.DailyRollingFileAppender">
<param name="File" value="/olatapps/olatng/logs/thishost/tomcat/olatng99/olat.log"/>
<param name="DatePattern" value="'.'yyyy-MM-dd"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c{1} %x - %m%n"/>
</layout>
</appender>
<!-- OLAT settings -->
<logger name="org.olat">
<level value="INFO"/>
</logger>
<logger name="org.olat.basesecurity.AuthHelper">
<level value="ERROR"/>
</logger>
<logger name="org.apache.commons.httpclient">
<level value="WARN"/>
</logger>
<logger name="org.olat.core.commons.taskExecutor.ThreadPoolTaskExecutor">
<level value="ERROR"/>
</logger>
<logger name="org.apache.pdfbox.filter.FlateFilter">
<level value="FATAL" />
</logger>
<!-- Third party libraries -->
<logger name="org.apache">
<level value="ERROR"/>
</logger>
<logger name="org.hibernate">
<level value="ERROR"/>
</logger>
<logger name="org.springframework">
<level value="ERROR"/>
</logger>
<!--
Filter db-task executor error and warn because they could happen per design
-->
<logger name="org.hibernate.event.def.AbstractFlushingEventListener">
<level value="FATAL"/>
</logger>
<logger name="net.sf.hibernate">
<level value="WARN"/>
</logger>
<!-- verify treecache.xml activation -->
<logger name="org.jboss.cache">
<level value="DEBUG" />
</logger>
<logger name="org.hibernate.cache">
<level value="DEBUG" />
</logger>
<root>
<level value="INFO" />
<appender-ref ref="syslog"/>
</root>
</log4j:configuration>
Download olat.war File and deploy it into tomcat (copy to webapp directory). See 'Tomcat Web Application Depolyment' documentation.