This guide walks you through installing OpenOLAT on a local GNU/Linux or similar system.
The username is openolat in this guide with home directory in /home/openolat
Download JRE 1.7, tomcat-7 and OpenOLAT-9.0.x war file. Create a directory downloads and keep the downloaded files there:
openolat~$ ls -l downloads/ total 136652 -rw-r--r-- 1 openolat openolat 7843733 Sep 18 10:34 apache-tomcat-7.0.40.tar.gz -rw-r--r-- 1 openolat openolat 46808550 Sep 18 10:34 jre-7u40-linux-x64.tar.gz -rw-r--r-- 1 openolat openolat 85277009 Sep 10 21:42 openolat_903.warNote that you do not need a JDK to run OpenOLAT.
In the home directory:
zcat downloads/apache-tomcat-7.0.40.tar.gz | tar xvf - ln -s apache-tomcat-7.0.40 tomcat zcat downloads/jre-7u40-linux-x64.tar.gz | tar xvf - ln -s jre1.7.0_40/ jre mkdir openolat-9.0.3 unzip -d openolat-9.0.3/ downloads/openolat_903.war ln -s openolat-9.0.3 webapp
mkdir bin conf lib run logs
Link the following files
ln -s ../tomcat/conf/web.xml conf/ ln -s ../tomcat/bin/catalina.sh bin/
Create handy links
ln -s tomcat/bin/startup.sh start ln -s tomcat/bin/shutdown.sh stop
Create the file bin/setenv.sh containing
CATALINA_BASE=. JRE_HOME=./jre CATALINA_PID=./run/openolat.pid CATALINA_TMPDIR=/tmp/openolat mkdir -p $CATALINA_TMPDIR CATALINA_OPTS=" \ -Xss256k -Xmx512m -Xms512m -XX:PermSize=192m \ -Duser.name=openolat \ -Duser.timezone=Europe/Zurich \ -Dspring.profiles.active=myprofile \ -Djava.awt.headless=true \ -Djava.net.preferIPv4Stack=true \ -Djava.endorsed.dirs=./common/endorsed \ -XX:+HeapDumpOnOutOfMemoryError \ -XX:HeapDumpPath=. \ "
Tomcat scripts will parse this file at startup.
Create the file conf/server.xml
<?xml version='1.0' encoding='utf-8'?> <Server port="8085" shutdown="SHUTDOWN"> <Service name="Catalina"> <Connector port="8088" protocol="HTTP/1.1" /> <Engine name="Catalina" defaultHost="localhost"> <Host name="localhost" appBase="webapps" /> </Engine> </Service> </Server>
Make sure the chosen ports (8085 and 8085 in this example) are available.
Set the environment variable CATALINA_HOME, for example by appending the following to your .bashrc
export CATALINA_HOME=~/tomcat
./start
Shoult output something like this:
Using CATALINA_BASE: . Using CATALINA_HOME: /home/openolat/tomcat Using CATALINA_TMPDIR: /tmp/openolat Using JRE_HOME: ./jre Using CLASSPATH: /home/openolat/tomcat/bin/bootstrap.jar:/home/openolat/tomcat/bin/tomcat-juli.jar Using CATALINA_PID: ./run/openolat.pid
Check whether these values make sense and stop tomcat.
./stop
Do the following as mysql root user
create database oodb character set utf8 collate utf8_unicode_ci; grant all privileges on oodb.* to oodbu@localhost identified by 'oodbpasswd';
Test the mysql account as openolat user
mysql oodb -u oodbu -poodbpasswdYou should get the mysql cli prompt. Exit.
Optionally create a file named .my.cnf containing
[client] database=oodb user=oodbu password=oodbpasswdthen you can access the database by just typing mysql.
Create the OpenOLAT database schema
cd webapp/WEB-INF/classes/database/mysql/ mysql oodb -u oodbu -poodbpasswd < setupDatabase.sql
Create the file lib/olat.local.properties
db.source=jndi db.jndi=java:comp/env/jdbc/OpenOLATDS installation.dir=/home/openolat server.contextpath=/openolat server.domainname=localhost server.port=8080 server.port.ssl=0 smtp.host=disabled tomcat.id=1 userdata.dir=/home/openolat/olatdata log.dir=/home/openolat/logs
Create the context file for the OpenOLAT Application
mkdir -p conf/Catalina/localhost/and create the file mkdir -p conf/Catalina/localhost/openolat.xml containing
<?xml version="1.0" encoding="UTF-8" ?> <Context path="/openolat" docBase="/home/openolat/webapp" debug="0" reloadable="false" allowLinking="true"> <Resource name="jdbc/OpenOLATDS" auth="Container" type="javax.sql.DataSource" maxActive="32" maxIdle="8" maxWait="60000" username="oodbu" password="oodbpasswd" driverClassName="com.mysql.jdbc.Driver" validationQuery="SELECT 1" validationQueryTimeout="-1" testOnBorrow="true" testOnReturn="false" url="jdbc:mysql://localhost:3306/oodb?useUnicode=true&characterEncoding=UTF-8&cachePrepStmts=true&cacheCallableStmts=true&autoReconnectForPools=true"/> </Context>Make sure the values of username, password and the "localhost:3306/oodb" part in the url value are the ones of your mysql account for OpenOLAT.
Create the file lib/log4l.xml containing
<?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"> <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="/home/openolat/logs/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> <appender name="syslog" class="org.apache.log4j.DailyRollingFileAppender"> <param name="File" value="/home/openolat/logs/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> <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> <logger name="org.apache"> <level value="ERROR"/> </logger> <logger name="org.hibernate"> <level value="ERROR"/> </logger> <logger name="org.springframework"> <level value="ERROR"/> </logger> <logger name="org.hibernate.event.def.AbstractFlushingEventListener"> <level value="FATAL"/> </logger> <logger name="net.sf.hibernate"> <level value="WARN"/> </logger> <logger name="org.jboss.cache"> <level value="WARN" /> </logger> <logger name="org.hibernate.cache"> <level value="WARN" /> </logger> <root> <level value="INFO" /> <appender-ref ref="syslog"/> </root> </log4j:configuration>
Delete the log4j.xml file packaged with OpenOLAT
rm webapp/WEB-INF/classes/log4j.xml
./start
The file log/catalina.out should say
INFO: Deploying configuration descriptor /home/openolat/conf/Catalina/localhost/openolat.xmlnear the end and the last line should be like
INFO: Server startup in 16310 ms
point your browser to
http://localhost:8088/openolat username: administrator password: openolat