LAMS installation and configuration: Difference between revisions

The educational technology and digital learning wiki
Jump to navigation Jump to search
(Added references to LAMS version 4.5, included default users, improve git instructions)
 
(109 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{incomplete}}
{{incomplete}}
 
<!-- <pageby nominor="false" comments="false"/> -->
== Definition ==
== Definition ==


This page contains installation tips for [[LAMS]]. Mostly LAMS 2.1RC1 for Solaris 10.
This page contains installation tips for a '''fresh''' install of [[LAMS]].


LAMS is a JAVA/JBOSS-based application and needs some installation skills on Windows and good installation skills for Unix.
LAMS is a JAVA/JBOSS-based application and needs some installation skills on Windows and good installation skills for Unix.


'''READ THIS''' - [[User:Daniel K. Schneider|Daniel K. Schneider]] 16:31, 18 September 2008 (UTC)
Note: I put the legacy stuff in the [[Talk:LAMS_installation_and_configuration|discussion page]], e.g. LAMS 2.x for Ubuntu, LAMS 2.1RC for Solaris
* I soon will install a new version
* I put the legacy stuff in the [[Talk:LAMS_installation_and_configuration|discussion page]], e.g. LAMS 2.1RC for Solaris


== LAMS 2.1.1 on Solaris ==
== LAMS 4.5+ ==
As of July 2021, LAMS 4.5 was released and is the latest stable release.


Lams 2.0 was released on December 6 2006. Since then, there were very several minor upgrades. On Sept 2008, the current release is 2.1.1.
=== Getting the LAMS source code ===
Source code is available from [https://github.com/lamsfoundation/lams Github]. The code branch to use is v4.5


These installation notes refers mostly to the 2.1.1 install, but it should help with 2.0.4 too. Official LAMS instructions are a bit Linux centric and this is main reason why you might have a look at this. My notes also should work with older Solaris versions (just make sure to upgrade Java if needed and in this case to set the Java path).
'''Required software'''
* Git
* Wildfly 14.0.1
* OpenJDK 11
* MySQL 8.0
* Ant  (Java task compiler)


First, read the instructions in:
==== OpenJDK 11 ====
* [http://wiki.lamsfoundation.org/display/lamsdocs/Unix+Installer+Help Unix Installation and Updating Help] (if you plan to use the Unix installer)
In Debian/Ubuntu 20.04
* [http://wiki.lamsfoundation.org/display/lams/Building+LAMS Building LAMS] (if you plan a source install)
* [http://wiki.lamsfoundation.org/display/lams/Development+Environment Development Environment]


'''Upgrading''' from previous versions: You can't upgrade from 2.1RCx. So I started from scratch. Since we only have our students create LAMS scenarios as exercises I had them save the zip file in their work portfolio and they could import it again (I hope). Anyhow: export all scenarios from your LAMS server as LAMS zip files (not LD) before you erase the old data-base and the LAMS software from JBOSS.
$ sudo apt install openjdk-11-jdk-headless
$ sudo apt install fontconfig
==== MySQL 8.0 DB ====


Disclaimer: I am not a good sysadmin nor is it my idea of fun. This is not a manual, but '''just''' my private installation notes I am willing to share. - 16:54, 19 September 2008 (UTC)
$ wget https://dev.mysql.com/get/mysql-apt-config_0.8.15-1_all.deb
$ sudo dpkg -i  mysql-apt-config_0.8.15-1_all.deb
$ sudo apt update
$ sudo apt install mysql-server
$ sudo mysql_secure_installation


I got this machine and OS:
===== Basic MySQL configuration =====
SunOS tecfasun1.unige.ch 5.10 Generic_118833-17 sun4u sparc SUNW,Sun-Fire-V240
''/etc/mysql/mysql.conf.d/mysqld.cnf''


So, open a terminal under root ....
...
 
# LAMS stuff
=== Download and checksum ===
explicit_defaults_for_timestamp
 
character-set-server = utf8mb4
Check the [http://wiki.lamsfoundation.org/display/lams/Downloads download page] at LAMS. Make sure to get the right version ! Also you may have to get a patch that you will have to apply after the main install.
collation-server = utf8mb4_unicode_ci
 
transaction-isolation=READ-COMMITTED
I took the following ones: There was no LAMS 2.1.1 full distribution. Had to install LAMS 2.1 first and then apply the patch
sql-mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"
* [http://lamscommunity.org/2.1/stable/unix/lams-unix-installer-2.1.tar.gz lams-unix-installer-2.1.tar.gz]
max_allowed_packet=32M
* [http://wiki.lamsfoundation.org/display/lams/Downloads#Downloads-LAMS2.1forUnix%2CLinux%2CMacintosh%28y%29new%5C%21%28y%29 lams-unix-patch-2.1.1.tar.gz].  
# Record slow queries
 
slow_query_log = 1
This would be the wrong version if you have Ubuntu. I run Ubuntu as my desktop machine and indeed life is easier on Ubuntu ....
slow_query_log_file = /var/log/mysql/mysql-slow.log
 
long_query_time = 10
Then you may checksum the downloaded archive. In some very rare cases there exist transmission errors or someone managed to upload a bad archive to the download server. So type:
  md5sum lams-unix-installer-2.1.tar.gz
[mysqldump]
And then compare the number that will show like this with the one on the download page:
  default-character-set=utf8mb4
  2f29d60147bf1328d3a044a66ea8b083  lams-unix-installer-2.1.tar.gz
hex-blob=1
 
  single-transaction=1
=== Prerequisite 0: Infrastructure ===
quick=1
 
  ...
* Make sure your organization doesn't stifle your creativity with Firewalls. If they do, expect '''a lot''' of extra work.
* Also the 8080 port should be free. Some software like Skype just randomly take up ports. If you run an other server, read [http://wiki.lamsfoundation.org/display/lamsdocs/Changing+Server+Ports+for+LAMS Changing Server Ports for LAMS]
* Hardware and OS: Any Windows, Linux, MacOS X, Solaris etc. machine will do since LAMS is programmed in JAVA. You just need some disk space, substantial memory and a not too old JAVA. Also, you may have to adapt some scripts to your special Unix brand.
 
=== Prerequisite 1: Java software ===
 
; Java + ant


Solaris 10 ought to have the right Java + Ant installed. Ant is an installation program like make. Note: You need the JDK/JSE or whatever Sun decided to rename it (i.e. the compiler, not just the runtime)
After installing MySQL, create a user and a DB for LAMS and grant appropriate permissions:


Check if Java can be found, i.e. type:
DROP DATABASE IF EXISTS lams;
  java -version
  CREATE DATABASE lamsdb DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
... you should have java 1.5.x or better. If you don't, check the system for another java or install a new one. If you do so, make sure to specify the right path according to instructions from the LAMS install page.
SET FOREIGN_KEY_CHECKS=1;
GRANT ALL PRIVILEGES ON lamsdb.* TO lamsdbuser@localhost IDENTIFIED BY 'real_secret_pw';
REVOKE SUPER ON *.* from lamsdbuser@localhost;


I have ''Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_06-b05)'', i.e. the default thing installed in this machine. It's easy to have another Java version, but I suggest from past experience to install it somewhere else, e.g. in /usr/local.
==== Wildfly 14.0.1 ====


So just for the fun of it you can get another from SUN. No links, since Sun not only changes naming of Java edition but also their web sites at regular intervals. You just have to understand that JDK "6" == JDK "1.6" and that "SDK = JDK". Do not install anything that is called "JRE". Then, you can either take the small SE version or larger EE version. Both work with JBoss. It takes some time to find the right thing. Also you won't find installation instructions on the final download screen (you have to backtrack). Branding managers and website designers at Sun should reassigned to other tasks like designing the cafeteria at the head quarters. Do '''not''' go to http://java.com but try http://java.sun.com/
$ wget https://download.jboss.org/wildfly/14.0.1.Final/wildfly-14.0.1.Final.tar.gz
$ cd /opt/lams
$ tar xvzf wildfly-14.0.1.Final.tar.gz


In case you download something like the ''jdk-6u7-solaris-sparc.sh'' version you have to know that it will just unpack the whole thing as a subdirectory.
==== LAMS source code pre-compilation ====
LAMS is open source and its code is available from [https://github.com/lamsfoundation/lams GitHub]<syntaxhighlight lang="bash">
git clone https://github.com/lamsfoundation/lams.git
</syntaxhighlight>By default branch is LAMS' latest stable release as of July 2021, that's version 4.5. If you need a previous branch, see [https://github.com/lamsfoundation/lams/branches other branches available].


cd /usr/local
Wherever you have your LAMS v4.5 code, edit the following files
mv /path_where_you_put_it/jdk-6u7-solaris-sparc.sh .
chmod a+x jdk-6u7-solaris-sparc.sh
./jdk-6u7-solaris-sparc.sh
ln -s jdk1.6.0_07 jdk6
rm jdk-6u7-solaris-sparc.sh


Now you have a Java6 in the symbolic link ''/usr/local/jdk6''. See if it works:
'''common.properties'''
./jdk6/bin/java -version
Should show:
java version "1.6.0_07"
Java(TM) SE Runtime Environment (build 1.6.0_07-b06)
Java HotSpot(TM) Server VM (build 10.0-b23, mixed mode)


Let's try install it with this one.
Primarily the DB settings and based system.  


=== Prerequisite 2: Wildfire ===
If you are building LAMS using Windows, set the osPropertiesName to "windows" instead of "unix".


This is a [http://en.wikipedia.org/wiki/Xmpp XMPP] (Jabber) chat server, that actually is called Openfire nowSee:
...  
* [http://wiki.lamsfoundation.org/display/lamsdocs/Installing+Wildfire+for+LAM Installing Wildfire for LAMS]
#======== DATABASE PROPERTIES =========
* Also read [http://www.igniterealtime.org/builds/wildfire/docs/latest/documentation/install-guide.html Installation guide] (at Igniterealtime).
  db.host=localhost
db.port=3306
db.name=lamsdb
db.username=lamsdbuser 
db.password=real_secret_pw
...
osPropertiesName=unix
...  


You don't really need open/wildfire (but then either your students can't chat). You also may try to use an existing server that works with LAMS. I guess that there ought to be free servers you can use.
''If you are building LAMS in a unix based system, then change the file '''unix.properties.''' If you are using Windows, then change the '''windows.properties''' file instead.''
* LAMS folks say to install an '''old''' 2.6.2. version. Links are available from the LAMS page, you won't find it at [http://www.igniterealtime.org/ Ignite realtime]. Note: I have to see whether this is still true, but for the moment I just complied.
* Since this server is written in Java you can take the [http://www.igniterealtime.org/builds/wildfire/wildfire_2_6_2.tar.gz Mac OSX and others] version (i.e. a tar ball).


Installation steps:
'''unix.properties'''


1) Uncompress in /usr/local/wildfire or some other place
Here you will need to figure a path to the content repository
contentrepository.base=/var/opt/lams


2) Start the server with ./bin/wildfire start
The path to your Wildfly folder
* This is a typical startup script. You later can copy this script to /etc/init.d/ etc.
server.home=/usr/local/wildfly-14.0.1/


3) Configure this server through the web interface. If you are lucky you will have a web browser on your server and an X11 connection.  
...  
  http://localhost:9090/  
  contentrepository.base=/var/opt/lams
Else use an URL like: http://yourhost.org:9090/ ... it should work I think. But do it as fast as possible since you have to set passwords and stuff.
...
  server.home=/opt/lams/wildfly-14.0.1/
...  


* Use "embedded database" if you want to make the install shorter, else you can set it up with mysql
==== Compilation and deployment ====


The configuration process will ask you to fill in a few forms. Just make sure that you use the right server names. You then can log as administrator and you will have access to an administration console.
cd lams_build
ant deploy-lams


* Tick "Don't Show History" (Group Chat -> History Settings), but you can do this later
If no errors occurred, you are ready to start Wildfly.


4) Test it. You may want to install a [http://en.wikipedia.org/wiki/List_of_Jabber_client_software jabber client], e.g. gajim (Ubuntu users can read an article on [https://wiki.ubuntu.com/Jabber Jabber]
cd /opt/lams/wildfly-14.0.1/bin
./standalone.sh


5) Security:
You may restrict login to given set of IP addresses or even disable account creation. Chat servers may be taken over by not so friendly people.
* Edit Server Settings->Registration and Login


Installing wildfire should be easy, it was for me. It's a fairly popular product...
LAMS should be available at localhost:8080/lams/ 


=== Prerequisite 3: Configure MySQL for LAMS ===
By default, LAMS has a set of preconfigured users:
{| class="wikitable"
|+Default Users
!user
!password
!role
|-
|sysadmin
|sysadmin
|System administrator
|-
|test1
|test1
|Teacher, student, tutor
|-
|test2
|test2
|Teacher, student, tutor
|-
|test3
|test3
|Teacher, student, tutor
|-
|test4
|test4
|Teacher, student, tutor
|}
Of course, you can create and import users and courses into LAMS at any time from the sysadmin menu. 


Here are the steps:
(OPTIONAL) Wildfly comes with a ton of libraries that LAMS does not use. So to slim Wildfly to only use the libs that LAMS uses, please run the following ant task in the lams_build folder: <syntaxhighlight lang="bash">
ant slim-standalone
</syntaxhighlight>


1) Make sure to have a MySQL '''5.x''' server. Else install it (and come back)
== LAMS 3.1 ==


2) Configure it according to the LAMS [http://wiki.lamsfoundation.org/display/lamsdocs/Installing+MySQL+on+Windows+for+LAMS instructions], i.e. make changes to file my.cnf:
As of March 2019, we do have a new LAMS installation that works fine in virtual server running Ubuntu 18.x.
* This cnf file may not exist (it wasn't in our binary distribution). Also, it can be in different locations
* Type ''mysql --help'' to get a list of the places the MySQL server will look for this config file
* So, create my.cnf if you don't have one. Start by copying a *.cfn model from /usr/local/mysql/share/mysql or some other place. I took my-medium.cnf.


Changes to make: file my.cnf should include these lines (no idea what it means and why):
* [https://github.com/lamsfoundation/lams Github]
* [https://wiki.lamsfoundation.org/display/lams/LAMS+3.1+in+Ubuntu Quick compile guide for Ubuntu]


[mysqld]
However, I do not feel doing system administration anymore (except for this wiki) and I asked our systems person to do it. So there is not documentation, sorry.
....
transaction-isolation=READ-COMMITTED
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"


Then restart MySQL !
Lams Moodle integration. There are two types of integration.
* LAMS - Moodle integration with a Moodle plugin.
* [[IMS Learning Tools Interoperability|LTI]] integration, i.e. Moodle can "consume" LAMS contents


3) Create a LAMS database.
=== LTI external tool integration ===


This step is '''not needed''', the installation script will do it
Documentation
* [https://docs.moodle.org/36/en/External_tool_settings External tool settings] (Moodle 3.6 manual).
* [https://wiki.lamsfoundation.org/display/lams/Integrations Integrations] (LAMS documentation).


However, there is a mistake in the script. I will grant global privileges to the lams user. Remove them either withs these SQL commands or with some MySQL administration tool.
An administrator can manually configure external tools in Site administration > Plugins > Activity modules > External tool> Manage tools so that they are available across the site.  


REVOKE ALL PRIVILEGES ON * . * FROM 'lams'@'localhost';
=== Moodle LAMS integration through a Moodle plugin ===
REVOKE GRANT OPTION ON * . * FROM 'lams'@ 'localhost';


Then add these just for the lams database
* We did that with LAMS 2.5. To be tested with LAMS 3.0. There is a [https://wiki.lamsfoundation.org/display/lams/Integrations plugin for download] and the method should be the same.
GRANT ALL PRIVILEGES ON `lams` . * TO 'lams'@'localhost' WITH GRANT OPTION ;


=== Prerequisite 4: JBOSS ===
== LAMS 3.0 ==


JBOSS is a Java application server. LAMS is programmed with this application framework.
As of November 2018, the current system is LAMS 3.x. You can test this with a [https://demo.lamsfoundation.org/lams/ demo version]. '''Below, we started documenting an installation on Ubunt 18x, but we did not find time to complete the installation'''. As you can see something went wrong. Instead, we installed LAMS 3.1 on a virtual server machine.


* I simply got the 4.0.2 binary from [http://labs.jboss.com/portal/jbossas/download Jboss.org]
'''History'''


* Unpack into /usr/local (or wherever else you like it)
LAMS 2.5 was initially promised for 2014. Then, after a funding cut, the LAMS team was mostly disbanded and the core team found a new "home" in Singapour. Sometimes in 2016 the version number was changed to LAMS 3.0.  
gtar xzf jboss-4.0.2.tar.gz -C /usr/local


* Copy some jar files
'''Status as of Nov 2018'''
cp /usr/local/jboss-4.0.2/server/all/lib/jboss-cache.jar /usr/local/jboss-4.0.2/server/default/lib/
cp /usr/local/jboss-4.0.2/server/all/lib/jgroups.jar /usr/local/jboss-4.0.2/server/default/lib/


=== Pre-install ===
* The old LAMS community pages are still online, but no longer maintained.


1) Unpack the archives some place, e.g. in /src/. Use gtar to unpack !
* LAMS 3.x it is available on [https://github.com/lamsfoundation/lams Github], but documentation is lacking. Also, there is no installer. You will have to install and configure like in the "good" old times ....
** LAMS 3.x will run under old 8.2.1 version of [http://wildfly.org/downloads/ Wildfly], formerly JBoss (?). E.g. see [https://www.howtoforge.com/tutorial/ubuntu-wildfly-jboss-installation/ How to install WildFly (JBoss) Java Application Server on Ubuntu 18.04].
** Create a MySQL database
** Build the system with ANT


gtar zxf lams-unix-installer-2.1.tar.gz
* https://demo.lamsfoundation.org/lams/ does run a 3.x demo version for which you can require a login.
gtar zxf lams-unix-patch-2.1.1.tar.gz


So you should have something like:
* LAMS 3.x is available as commercial offering through [https://www.lamsinternational.com/ Lams International] and also through content services (to be verified).
<pre>
drwxr-xr-x  4 root    root        1024 Sep 19 12:20 ./
drwxrwxr-x 42 root    root        1024 Sep 19 11:00 ../
drwxr-xr-x  13 1000    1000        512 Jun 20 03:26 lams-unix-installer-2.1/
-rw-r--r--  1 schneide tecfa    60219686 Sep 19 10:19 lams-unix-installer-2.1.tar.gz
drwxr-xr-x  9 1000    1000        512 Sep  5 08:43 lams-unix-patch-2.1.1/
-rw-r--r--  1 schneide tecfa    3902055 Sep 19 10:13 lams-unix-patch-2.1.1.tar.gz
</pre>


2) If you use a non-standard JAVA make sure that installer script can find it. Remember this for later also ! If you use csh, type:


setenv PATH (path to java bin directory):$PATH
setenv JAVA_HOME (path to java installation directory)


For example:
=== Prerequisites ===
setenv PATH /usr/local/jdk6/bin:$PATH
setenv JAVA_HOME /usr/local/jdk6


Or in a bash shell:
;Java
: Usually, this is installed. Check it. In principle, the Open JDK should work, however we do not know if that is true for older version. If it does not (we have to test) this, then it should be replaced with Oracle one. '''This is very likely the case'''.
JAVA_HOME="(path to java installation directory)"
export JAVA_HOME
PATH="(path to java bin directory):$PATH"
export PATH
 
Then control:
which java
  java -version
  java -version
gives something link:
openjdk version "10.0.2" 2018-07-17
OpenJDK Runtime Environment (build 10.0.2+13-Ubuntu-1ubuntu0.18.04.1)
OpenJDK 64-Bit Server VM (build 10.0.2+13-Ubuntu-1ubuntu0.18.04.1, mixed mode)


3) You should kill older lams data and config directories and/or make a backup, e.g.
Installation did not work with java 11, so I tried '''OpenJDK version 8'''. If you don't have Java 8 (it already was on my system), install it first.
mv /usr/local/lams/lams /usr/local/lams/lams.old
mv /etc/lams2 /etc/lams2.old
 
4) If you already got an old LAMS in jboss, also get rid of it (not sure if this is really needed)
 
rm -r /usr/local/jboss-4.0.2/server/default/deploy/lams.ear/
 
5) If you use a non-standard Java (see above) you also should change the JAVA configuration in JBOSS. Edit file /usr/local/jboss-4.0.2/bin/run.conf and change:
 
JAVA_HOME=/usr/local/jdk6
JAVA="/usr/local/jdk6/bin/java
 
You also can add some extra memory for startup
  JAVA_OPTS="-server -Xms256m -Xmx512m"
 
The just test it once, execute:
/usr/local/jboss-4.0.2/bin/run.sh &
 
You should see something like:
JBoss Bootstrap Environment
  JBOSS_HOME: /usr/local/jboss-4.0.2
  JAVA: /usr/local/jdk6/bin/java
  JAVA_OPTS: -server -Xms512m -Xmx512 -Dprogram.name=run.sh
  CLASSPATH: /usr/local/jboss-4.0.2/bin/run.jar:/usr/local/jdk6/lib/tools.jar


Check in a browser if its alive for real:
  udo apt install openjdk-8-jdk
  http://xxxx.yyy.zz:8080/


Then kill it, execute:
To use Java 8 by default, you can do the following. Most software seems to use Java 8 anyhow ....
  /usr/local/jboss-4.0.2/bin/shutdown.sh --shutdown
  sudo update-alternatives --config java


=== Edit the installer configuration file ===


Go to the lams-unix-installer directory, e.g. ''/src/lams/lams-unix-installer-2.1/''
;SASS (some kind of CSS pre-processor)
sudo apt install sass


  cp lams.properties lams.properties.ORI
;Ant
  sudo apt install ant


I did the following (roughly)
;If exists, stop your old LAMS, e.g.
: /etc/init.d/lams2 stop


# Installation Options
=== Kill old LAMS ===


LAMS_DIR=/usr/local/lams/lams
We did not try to upgrade an old LAMS installation since we did not have many sequences that were worthwhile keeping and since there are no instructions on how to do this. So, export sequences that are worth keeping ...


  LAMS_USER=admin
; Remove the startup script for old lams (or similar if it exists)
  LAMS_PASS=secretX
grep -R lams /etc
: For example
rm /etc/rc6.d/K02lams2
rm /etc/rc5.d/S02lams2
rm /etc/rc4.d/S02lams2
rm /etc/rc3.d/S02lams2
rm /etc/rc2.d/S02lams2
  rm /etc/rc1.d/K02lams2
  rm /etc/rc0.d/K02lams2


DB_NAME=lams
=== Install and configure Wildfly ===
DB_USER=lams
DB_PASS=secretY
 
# Wildfire installation (this is optional)
WILDFIRE_DOMAIN=tecfasun1.unige.ch
WILDFIRE_CONFERENCE=conference.tecfasun1.unige.ch
WILDFIRE_USER=admin
WILDFIRE_PASS=secretZ
   
   
  # Essential settings (Certainly you got to change the server_url with the '''right''' port !)
  # cd /src
 
  wget http://download.jboss.org/wildfly/8.2.1.Final/wildfly-8.2.1.Final.tar.gz
LAMS_PORT=8080
  tar xvfz wildfly-8.2.1.Final.tar.gz
SERVER_URL=http://tecfasun1.unige.ch:8080/lams/
JBOSS_DIR=/usr/local/jboss-4.0.2
JDK_DIR=/usr/local/jdk6
SQL_DIR=/usr/local/mysql/bin
SQL_HOST=localhost
SQL_PORT=3306
SQL_URL=jdbc:mysql://${SQL_HOST}/${DB_NAME}?characterEncoding=utf8&autoReconnect=true
DB_ROOT_PASSWORD=secretmysql
 
=== Using the installer ===
 
This may not work in old Solaris installations. You may have to install bash or try the simpler shell (sh).
 
bash install-lams.sh
 
Then answer the questions. Do not answer "yes" or "no", etc. just "y" etc.
 
I answered yes to all questions, except the wrapper one since it wont work for Solaris.
 
The install should complete with:
Configuring JBoss with your settings.
Buildfile: ant-scripts/configure-deploy.xml
 
LAMS 2.1 Configuration completed!
Please view the "readme" file for instructions on how to run LAMS.
 
Now LAMS is installed within the jboss server. LAMS related files in the system are:
* Start-up script:  /usr/local/jboss-4.0.2/bin/run-lams.sh
* Repository files:  /usr/local/lams/lams   
* Configuration file: /etc/lams2/lams.properties
* LAMS server:        /usr/local/jboss-4.0.2/server/default/deploy/lams.ear/
 
=== Run LAMS ===
 
Go to the bin directory
cd /usr/local/jboss-4.0.2/bin/
 
Inside this jboss bin directory type (else fix the script)
 
./run-lams.sh
 
First thing to do is:
tail /usr/local/jboss-4.0.2/server/default/log/server.log
 
If you see this:
2008-09-19 17:23:31,537 INFO  [org.apache.jk.server.JkMain] Jk running ID=0 time=0/46  config=null
2008-09-19 17:23:31,587 INFO  [org.jboss.system.server.Server] JBoss (MX MicroKernel) [4.0.2 (build: CVSTag=JBoss_4_0_2 date=200505022023)] Started in 2m:31s:271ms
 
then you are lucky :)
 
Check the URL, e.g.
  http://tecfasun1.unige.ch:8080/lams
 
You should see a woman working on a small laptop :)
 
=== Trouble shooting ===
 
For installation/startup trouble, look at the log files:
 
Directory:
/usr/local/jboss-4.0.2/server/default/log/
 
If you forgot the admin login/ password:
* It's in the configuration file
/etc/lams2/lams.properties
 
LAMS wont respond after some time
* Probably you need to increase memory. For 2.1RC0 it needed about 1.5GB, hopefully less this time. Edit either of:
/usr/local/jboss-4.0.2/bin/run.conf
/usr/local/jboss-4.0.2/bin/run-lams.sh
 
=== Install the 2.1.1 patch ===
 
1) Shutdown the jboss server:
 
/usr/local/jboss-4.0.2/bin/shutdown.sh --shutdown
 
To see if it's down:
tail /usr/local/jboss-4.0.2/server/default/log/server.log
 
2) Read the doc and make a fix
 
cd /src/lams/lams-unix-patch-2.1.1
 
a) Read the "readme" file
 
b) Fix the script if you want (not really needed). Replace the line
du -chs $LAMS_DIR $JBOSS_DIR
with
du -hs $LAMS_DIR $JBOSS_DIR
 
3) Run the installer and answer questions. Since I did a fresh 2.1 install just minutes before I did not test any of the backup features. Didn't test the shutdown either.  
 
  bash install-lams-patch.sh
 
4) Fix the startup script a bit, i.e. change line 1 with something like line 2
# nohup ./run.sh > /dev/null &
nohup /usr/local/jboss-4.0.2/bin/run.sh > /dev/null &
 
4) Test the new version
 
/usr/local/jboss-4.0.2/bin/run-lams.sh
 
Wait a while and/or play with:
tail /usr/local/jboss-4.0.2/server/default/log/server.log
 
=== Configuration of LAMS ===
 
Once your server is up and running, go to the Administration "Edit Configuration Settings":
 
1) Essential:
* add email (e.g. yours)
* add the smtp server (but you have to make sure that your institution lets machines post to it. There might be some anti-spam censorship)
 
2) Uploaded files
* I kept the defaults
 
3) [[LDAP]]
* I am intrigued by this. It should not show since I didn't ask for it.... (later)
* Basically I think that we will use LAMS only from Moodle ... and all our platforms should use LDAP but they don't ;)
 
4) Look an feel
* I suggest making screen sizes a bit bigger (unless your students work with ultra-light portable computers)
 
=== Tweaking for production ===
 
(later)
 
=== Discussion / Problems ===
 
Compared to older LAMS installations and the 2.1RCx version, the 2.1 install + 2.1.1 patch install went rather flawlessly.
 
* The install script gives to many privileges to the lams user in the MySQL database. Fix these if you are afraid.
 
* The 2.1.1. patch install script had a slight problem, i.e. an incompatible "du" flag. You wont see how much diskspace your will need, doesn't matter since you certainly got a real server ;)
 
* The startup script has a relative file name for the jboss "run.sh" script. You may make it full path for later use.$$$$
 
* Only missing thing is a /etc/init.d/ startup/shutdown script (later)
 
== Moodle - LAMS integration ==
 
The [http://wiki.lamsfoundation.org/display/lamsdocs/LAMS+v2.0+Integration+Setup+Step-by-Step+Guide  LAMS v2.0 Integration Setup Step-by-Step Guide] is fairly well done :)
 
=== The setup ===


* Moodle 1.9.2+. It runs on one machine (tecfax.unige.ch)
sudo mv /src/wildfly-8.2.1.Final /opt/wildfly
* LAMS runs on a different machine
sudo chown you:you /opt/wildfly
cd /opt/wildfly
more README.txt 


=== On the Moodle side ===
#Now test
First of all '''make sure''' that you do no skip step 4 below (you need the LAMS v2 module and ''not'' LAMS !)
cd /opt/wildfly/bin
./standalone.sh
# If your X server works and if you got Firefox installed on the server machine
firefox --new-instance
http://localhost:9990


Installation:
=== Create a new MySQL database and user ===
# Download a '''new''' file (it seems that fixes are made sometimes)
#* From [http://wiki.lamsfoundation.org/display/lams/Downloads#Downloads-moodle here]
# Unzip the file
# Move the lamstwo directory to moodle/mod/
# Move the lamstwo.php file to moodle/lang/en_utf8/
#* Do not forget this one, else you'll see some [[strange labels]] in Moodle
# Login as admin and go to http://yourmoodle/admin, LAMS tables will be created automatically.


Configuration on the Moodle Side:
(1) Check what you got
* Go to Modules / Activities / and click settings for '''LAMS v2'' module. At this point you also should consider removing the old LAMS module from the system (but it doesn't matter).


I used the following values:
  mysqlshow -p -u root
  server_url:    http://tecfasun1.unige.ch:8080/lams
server_id:      moodle
server_key:    somethingsecret
request_source: moodle


Validate and '''Save'''
(2) Create a new database and user
 
mysql -u root -p
and copy/paste an adapted version of the following
<source lang="sql">
DROP DATABASE IF EXISTS lams3; 
CREATE DATABASE lams3 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
SET FOREIGN_KEY_CHECKS=1;
GRANT ALL PRIVILEGES ON lams3.* TO lams@localhost IDENTIFIED BY 'real_secret_pw';
REVOKE PROCESS,SUPER ON *.* from lams@localhost;
</source>


=== On the LAMS side ===
After aborting wildfly you can run intot the following type of error (see also [https://lamscommunity.org/dotlrn/clubs/technicalcommunity/forums/message-view?message_id=1069554 this], dated 07/14/10)
/opt/wildfly/bin$ 18:25:34,136 INFO  [JdbcMigrationLauncher]  If this isn't from a long-running patch, but a stale lock, either:
18:25:34,136 INFO  [JdbcMigrationLauncher]    1) run MigrationTableUnlock (probably 'ant patch.unlock')
18:25:34,136 INFO  [JdbcMigrationLauncher]    2) set the lockPollRetries property so the lock times out
18:25:34,136 INFO  [JdbcMigrationLauncher]        (this is dangerous in combination with long-running patches)
  18:25:34,136 INFO  [JdbcMigrationLauncher]    3) set the 'patch_in_progress' in the patches table to 'F'


Note: There seems to be a bug. If you Disable Organization it will never come back. So don't tick this.
In the LAMS DataBASE, run the following SQL
update patches set patch_in_progress = "F";


* Go to "System Administration", then "Maintain integrated servers". click on edit. In particular: Make sure that you get the Moodle "user information" URL right and that all parameters match on both sides (be careful with "Moodle" vs. "moodle"!).
=== Dowload, configure and build LAMS ===


Id:          moodle
In order to find these files again, we decided to put them in /opt but any place can do.
Key:          somethingsecret
Description:  TECFA Moodle
Prefix:      mdl
Organisation: moodle
User Information: URL: http://tecfax.unige.ch/moodle/mod/lamstwo/userinfo.php?ts=%timestamp%&un=%username%&hs=%hash%
Timeout URL:      http://tecfax.unige.ch/lams/timeout.html


=== Test it ===
sudo chown you:your_group /opt/lams
cd /opt/
git clone https://github.com/lamsfoundation/lams.git


Get a pack from the lamscommunity. Three obvious choices are:
'''Edit the configuration files'''


* [http://www.lamscommunity.org/lamscentral/sequence?seq_id=622723 LAMS101 part 1 - What Is LAMS?]
cd /opt/lams/lams_build
* [http://www.lamscommunity.org/lamscentral/sequence?seq%5fid=622726 LAMS 101, Lesson 2 - LAMS Environments]


* [http://www.lamscommunity.org/lamscentral/sequence?seq%5fid=622729 LAMS101, Lesson 3 - LAMS Activities]
* Make a copy of the *.properties files just be sure. In addition, do not change the properties files themselves since they may be overridden by upgrades. Put them into a file called build.properties.


In Moodle you can add these in two steps:
Change common.properties:
db.host=localhost
db.port=3306
db.name=lams3
db.username=lams.....
db.password=real_secret....


1) "Add an activity"
Change file unix.properties:
# Maybe not the best place for you, but at TECFA we always create a /data directory for data that must be kept, e.g. portalware, web server files, etc.
contentrepository.base=/data/lams


If you can't see anything happen, e.g. you just get this message and nothing else:
  #JBoss deploy directory (Unix)
  Sequence
server.home=/opt/wildfly
   
  The directory structure below contains the sequences you can create a lesson for.
  Select one and click on the next button to continue.
then you made a mistake in the configuration, e.g. the "user information" URL is wrong.


2) Import a sequence in LAMS
#Sass executable.
sass_exec_file=/usr/bin/sass


Inside the LAMS application:
'''Copy the properties to file''' <code>build.properties</code>
* File->Import
* File->Save


3) Then when you are back to Moodle:
'''Build LAMS'''
* Select the sequence from the workspace tree
* Click Next and fill in the usual little Moodle activity infos (header and short text)


This may also fail because of communication timeouts between the two machines. I'll look into this later.
It is not clear to me if one should build various components. In principle, lams-cruise alone should do the trick.
You can retry installing an activity by editing it....


=== Moodle-LAMS Notes ===
# go to the build directory
cd /opt/lams/lams_build


You may have to adjust timeouts and other stuff if your server load is high.
# Optional: build some stuff
ant build-db
ant deploy-ear   
ant deploy-tools


Make sure that you do not mix up case: E.g. if your group is called "moodle" in LAMS use "moodle" and '''not''' "Moodle" (I got stuck with this once)
# build lams (ant will read the build.xml file and "cruise" is a "target" that should build the whole thing)
ant lams-cruise


Your JBOSS server may need '''more''' memory space allocated (see above)
At the end you should see something like:
lams-cruise:
BUILD SUCCESSFUL
Total time: 3 minutes 35 seconds


Be careful about using several browser windows and tabs. The "system Administration" page will use an already openend window/tab. So if the "Sys Admin" link doesn't bring up the tool or complains about your role, etc. look for it on your desktop and close it. Maybe also log out and in again from your LAMS server if you just tested Moodle before.
Now, in principle, LAMS is deployed in the Wildfly sever and could launch it again.


If you tried a Moodle LAMS integration in the past with an older LAMS server, your MOODLE may have junk left inside. Replace all older Moodle LAMS integration code (as we actually pointed out above)
=== Compilation errors with OpenJDK 11 ===


Only if you don't have activities in production:
Some library is missing with openjdk '''11''' and something else is wrong. I did not get these errors with Openjdk 8, but then I might have installed some extra libraries in the past. I cannot remember.
* delete the LAMS2 module in MOODLE.


In any case:
    [echo] LAMS Common: Compiling Java sources
* Remove all the the files in the '''moodle/mod/lamstwo''' directory
    [javac] Compiling 469 source files to /opt/lams/lams_common/build/classes/java
* Reinstall a '''new''' version (downloaded fresh).
    [javac] warning: [options] bootstrap class path not set in conjunction with -source 8
    [javac] /opt/lams/lams_common/src/java/org/lamsfoundation/lams/policies/dao/hibernate/PolicyDAO.java:22: error: package com.sun.webkit does not exist
    [javac] import com.sun.webkit.PolicyClient;
    [javac]                      ^
    [javac] Note: Some input files use or override a deprecated API.
    [javac] Note: Recompile with -Xlint:deprecation for details.
    [javac] Note: Some input files use unchecked or unsafe operations.
    [javac] Note: Recompile with -Xlint:unchecked for details.
    [javac] 1 error
    [javac] 1 warning


== LAMS 2.0 RC2 Windows XP PC ==
=== Test running LAMS with WildFly ===


Note: This chapter is outdated (written in Dec 2006). I don't see really the point in running a LAMS server on a personal PC and our servers are Unix ! But since some of our students like to play with tech, I may update it some day .... - [[User:Daniel K. Schneider|Daniel K. Schneider]] 16:54, 19 September 2008 (UTC)
Make sure that the port that you plan to use with WildFly is free. By default the standalone server version is port 8080.


Do not try to install LAMS if you lack basic installation experience and technical '''reading skills'''. Here are just a few remarks in addition to the [http://wiki.lamsfoundation.org/display/lamsdocs/Windows+Installer+Help LAMS installation instructions]. I also strongly suggest to look at the [http://lamscommunity.org/dotlrn/clubs/technicalcommunity/forums/forum-view?forum_id=4929 Problems Installing LAMS] Forum.
#Now test
cd /opt/wildfly/bin
./standalone.sh


=== Other Software ===
This will take some time since it will have to digest LAMS.


To run it on windows you need to install other software.
# If your X server works and if you got Firefox installed on the server machine you can see something on the server.
* Java JSE 5.0 (update 9), ''not just the JRE''. Get it from [http://java.sun.com/javase/downloads/index.jsp Sun].
firefox --new-instance
* MySQL: Get it directly from [http://dev.mysql.com/downloads/ MySQL] and take the '''Installer version''' (not the zip installation).
  http://localhost:8080
** Install it and remember the password
** I suggest '''not''' installing/using a [[WAMP]] environment for LAMS 2RC 2. The LAMS installer 2Rc2 could not find MySQL in my WampServer environment even if it was told where to look for in the LAMS installer.
** Hack would be to manually edit the registry with this [http://dev.mysql.com/doc/refman/5.0/en/windows-install-wizard.html information] from MySQL AB and [http://lamscommunity.org/dotlrn/clubs/technicalcommunity/forums/message-view?message_id=118753 this posting] and [http://lamscommunity.org/dotlrn/clubs/technicalcommunity/forums/attach/download/win_registry_msql%2ejpg?object_id=118756&attachment_id=118758 picture] by Ernie Ghiglione. Basically one needs to reproduce the MySQL entry from the official MySQL AB installer:
HKEY_LOCAL_MACHINE
  SOFTWARE
    MySQL AB
      MySQL Server 5.0 
                          Location c:\wamp\mysql
                          Version 5.0.27
... but this still didn't work for me. Something I did not try was to add mysqladmin.exe to the bin directory which is missing (see: [http://lamscommunity.org/dotlrn/clubs/technicalcommunity/forums/message-view?message_id=341725 Jun-Dir Liew]'s question and try it ... I don't have the time to do it right now. E.g. this file may be part of the simple zip / no registry version from the MySQL site).


=== MySQL ===
'''Shutting down the test server'''


* If you use a WAMP package you must know where MySQL sits. E.g. c:\wamp\mysql if you work with "WampServer" (but see above that I failed, rather work with an "official MySQL installer from MySQL AB). If you use the official MySQL installer, there will be no problem.
* CTRL-C in the console


=== LAMS ===
Else if you ran it as background process:
 
jboss-cli.sh --connect --command=:shutdown
* Make sure that the LAMS port (8080) is free, e.g. install [http://www.download.com/Active-Ports/3000-2085_4-10062969.html Active Ports] or type something like ''netstat -a'' in a DOS terminal.
 
* LAMS has an installer and if you got the above right it will install without problems. You may have a firewall. In this case make sure to open the necessary ports. Also pay attention to popup blockers in your navigator. LAMS worked fine with both IE 6 and Firefox 1.5x.


== Documentation and using LAMS ==
== Documentation and using LAMS ==


This page is not a resource for end users like course designers or learners. See:
'''Attention''': This wiki page is not a resource for end users like course designers or learners. Instead see:


* [http://wiki.lamsfoundation.org/display/lamsdocs/Home LAMS documentation Wiki Home]
* [http://wiki.lamsfoundation.org/display/lamsdocs/Home LAMS documentation Wiki Home]
Line 542: Line 398:


* [http://wiki.lamsfoundation.org/display/lamsdocs/Installing+MySQL+on+Windows+for+LAMS Installing Windows for LAMS] (also includes important MySQL configuration information)
* [http://wiki.lamsfoundation.org/display/lamsdocs/Installing+MySQL+on+Windows+for+LAMS Installing Windows for LAMS] (also includes important MySQL configuration information)
* [http://wiki.lamsfoundation.org/display/lamsdocs/Integrations LAMS & LMS Integrations]


* [http://wiki.lamsfoundation.org/display/lamsdocs/Unix+Installer+Help Unix Installation and Updating Help] (if you plan to use the unix installer)
* [http://wiki.lamsfoundation.org/display/lamsdocs/Unix+Installer+Help Unix Installation and Updating Help] (if you plan to use the unix installer)
Line 549: Line 407:
* [http://docs.moodle.org/en/Category:LAMS Category:LAMS in the Moodle Wiki]
* [http://docs.moodle.org/en/Category:LAMS Category:LAMS in the Moodle Wiki]


* [http://wiki.lamsfoundation.org/display/lamsdocs/LAMS+v2.0+Integration+Setup+Step-by-Step+Guide LAMS v2.0 Integration Setup Step-by-Step Guide]
* [http://wiki.lamsfoundation.org/display/lamsdocs/LAMS+v2.0+Integration+Setup+Step-by-Step+Guide LAMS v2.0 Integration Setup Step-by-Step Guide]


; Trouble shooting
; Trouble shooting
* [http://lamscommunity.org/dotlrn/clubs/technicalcommunity/ Technical community - Forums]
* [http://lamscommunity.org/dotlrn/clubs/technicalcommunity/ Technical community - Forums]


[[Category: Educational technologies]]
[[Category: Installation tips]]
[[Category: Installation tips]]

Latest revision as of 01:55, 16 November 2021

Definition

This page contains installation tips for a fresh install of LAMS.

LAMS is a JAVA/JBOSS-based application and needs some installation skills on Windows and good installation skills for Unix.

Note: I put the legacy stuff in the discussion page, e.g. LAMS 2.x for Ubuntu, LAMS 2.1RC for Solaris

LAMS 4.5+

As of July 2021, LAMS 4.5 was released and is the latest stable release.

Getting the LAMS source code

Source code is available from Github. The code branch to use is v4.5

Required software

  • Git
  • Wildfly 14.0.1
  • OpenJDK 11
  • MySQL 8.0
  • Ant (Java task compiler)

OpenJDK 11

In Debian/Ubuntu 20.04

$ sudo apt install openjdk-11-jdk-headless
$ sudo apt install fontconfig

MySQL 8.0 DB

$ wget https://dev.mysql.com/get/mysql-apt-config_0.8.15-1_all.deb
$ sudo dpkg -i  mysql-apt-config_0.8.15-1_all.deb
$ sudo apt update
$ sudo apt install mysql-server
$ sudo mysql_secure_installation
Basic MySQL configuration

/etc/mysql/mysql.conf.d/mysqld.cnf

...
# LAMS stuff
explicit_defaults_for_timestamp
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
transaction-isolation=READ-COMMITTED
sql-mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"
max_allowed_packet=32M
# Record slow queries
slow_query_log = 1
slow_query_log_file = /var/log/mysql/mysql-slow.log
long_query_time = 10

[mysqldump]
default-character-set=utf8mb4
hex-blob=1
single-transaction=1
quick=1
...

After installing MySQL, create a user and a DB for LAMS and grant appropriate permissions:

DROP DATABASE IF EXISTS lams;
CREATE DATABASE lamsdb DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
SET FOREIGN_KEY_CHECKS=1;
GRANT ALL PRIVILEGES ON lamsdb.* TO lamsdbuser@localhost IDENTIFIED BY 'real_secret_pw';
REVOKE SUPER ON *.* from lamsdbuser@localhost;

Wildfly 14.0.1

$ wget https://download.jboss.org/wildfly/14.0.1.Final/wildfly-14.0.1.Final.tar.gz
$ cd /opt/lams
$ tar xvzf wildfly-14.0.1.Final.tar.gz

LAMS source code pre-compilation

LAMS is open source and its code is available from GitHub

git clone https://github.com/lamsfoundation/lams.git

By default branch is LAMS' latest stable release as of July 2021, that's version 4.5. If you need a previous branch, see other branches available.

Wherever you have your LAMS v4.5 code, edit the following files

common.properties

Primarily the DB settings and based system.

If you are building LAMS using Windows, set the osPropertiesName to "windows" instead of "unix".

... 
#======== DATABASE PROPERTIES =========
db.host=localhost
db.port=3306
db.name=lamsdb
db.username=lamsdbuser  
db.password=real_secret_pw
...
osPropertiesName=unix
... 

If you are building LAMS in a unix based system, then change the file unix.properties. If you are using Windows, then change the windows.properties file instead.

unix.properties

Here you will need to figure a path to the content repository contentrepository.base=/var/opt/lams

The path to your Wildfly folder server.home=/usr/local/wildfly-14.0.1/

... 
contentrepository.base=/var/opt/lams 
... 
server.home=/opt/lams/wildfly-14.0.1/
... 

Compilation and deployment

cd lams_build
ant deploy-lams 

If no errors occurred, you are ready to start Wildfly.

cd /opt/lams/wildfly-14.0.1/bin
./standalone.sh


LAMS should be available at localhost:8080/lams/

By default, LAMS has a set of preconfigured users:

Default Users
user password role
sysadmin sysadmin System administrator
test1 test1 Teacher, student, tutor
test2 test2 Teacher, student, tutor
test3 test3 Teacher, student, tutor
test4 test4 Teacher, student, tutor

Of course, you can create and import users and courses into LAMS at any time from the sysadmin menu.

(OPTIONAL) Wildfly comes with a ton of libraries that LAMS does not use. So to slim Wildfly to only use the libs that LAMS uses, please run the following ant task in the lams_build folder:

ant slim-standalone

LAMS 3.1

As of March 2019, we do have a new LAMS installation that works fine in virtual server running Ubuntu 18.x.

However, I do not feel doing system administration anymore (except for this wiki) and I asked our systems person to do it. So there is not documentation, sorry.

Lams Moodle integration. There are two types of integration.

  • LAMS - Moodle integration with a Moodle plugin.
  • LTI integration, i.e. Moodle can "consume" LAMS contents

LTI external tool integration

Documentation

An administrator can manually configure external tools in Site administration > Plugins > Activity modules > External tool> Manage tools so that they are available across the site.

Moodle LAMS integration through a Moodle plugin

  • We did that with LAMS 2.5. To be tested with LAMS 3.0. There is a plugin for download and the method should be the same.

LAMS 3.0

As of November 2018, the current system is LAMS 3.x. You can test this with a demo version. Below, we started documenting an installation on Ubunt 18x, but we did not find time to complete the installation. As you can see something went wrong. Instead, we installed LAMS 3.1 on a virtual server machine.

History

LAMS 2.5 was initially promised for 2014. Then, after a funding cut, the LAMS team was mostly disbanded and the core team found a new "home" in Singapour. Sometimes in 2016 the version number was changed to LAMS 3.0.

Status as of Nov 2018

  • The old LAMS community pages are still online, but no longer maintained.
  • LAMS 3.x is available as commercial offering through Lams International and also through content services (to be verified).


Prerequisites

Java
Usually, this is installed. Check it. In principle, the Open JDK should work, however we do not know if that is true for older version. If it does not (we have to test) this, then it should be replaced with Oracle one. This is very likely the case.
java -version

gives something link:

openjdk version "10.0.2" 2018-07-17
OpenJDK Runtime Environment (build 10.0.2+13-Ubuntu-1ubuntu0.18.04.1)
OpenJDK 64-Bit Server VM (build 10.0.2+13-Ubuntu-1ubuntu0.18.04.1, mixed mode)

Installation did not work with java 11, so I tried OpenJDK version 8. If you don't have Java 8 (it already was on my system), install it first.

udo apt install openjdk-8-jdk
To use Java 8 by default, you can do the following. Most software seems to use Java 8 anyhow ....
sudo update-alternatives --config java


SASS (some kind of CSS pre-processor)
sudo apt install sass
Ant
sudo apt install ant
If exists, stop your old LAMS, e.g.
/etc/init.d/lams2 stop

Kill old LAMS

We did not try to upgrade an old LAMS installation since we did not have many sequences that were worthwhile keeping and since there are no instructions on how to do this. So, export sequences that are worth keeping ...

Remove the startup script for old lams (or similar if it exists)
grep -R lams /etc
For example
rm /etc/rc6.d/K02lams2
rm /etc/rc5.d/S02lams2
rm /etc/rc4.d/S02lams2
rm /etc/rc3.d/S02lams2
rm /etc/rc2.d/S02lams2
rm /etc/rc1.d/K02lams2
rm /etc/rc0.d/K02lams2

Install and configure Wildfly

# cd /src
wget http://download.jboss.org/wildfly/8.2.1.Final/wildfly-8.2.1.Final.tar.gz
tar xvfz wildfly-8.2.1.Final.tar.gz 
sudo mv /src/wildfly-8.2.1.Final /opt/wildfly
sudo chown you:you /opt/wildfly
cd /opt/wildfly
more README.txt   
#Now test
cd /opt/wildfly/bin
./standalone.sh
# If your X server works and if you got Firefox installed on the server machine
firefox --new-instance
http://localhost:9990

Create a new MySQL database and user

(1) Check what you got

mysqlshow -p -u root

(2) Create a new database and user

mysql -u root -p

and copy/paste an adapted version of the following

DROP DATABASE IF EXISTS lams3;  
CREATE DATABASE lams3 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci; 
SET FOREIGN_KEY_CHECKS=1; 
GRANT ALL PRIVILEGES ON lams3.* TO lams@localhost IDENTIFIED BY 'real_secret_pw'; 
REVOKE PROCESS,SUPER ON *.* from lams@localhost;

After aborting wildfly you can run intot the following type of error (see also this, dated 07/14/10)

/opt/wildfly/bin$ 18:25:34,136 INFO  [JdbcMigrationLauncher]   If this isn't from a long-running patch, but a stale lock, either:
18:25:34,136 INFO  [JdbcMigrationLauncher]     1) run MigrationTableUnlock (probably 'ant patch.unlock')
18:25:34,136 INFO  [JdbcMigrationLauncher]     2) set the lockPollRetries property so the lock times out
18:25:34,136 INFO  [JdbcMigrationLauncher]        (this is dangerous in combination with long-running patches)
 18:25:34,136 INFO  [JdbcMigrationLauncher]     3) set the 'patch_in_progress' in the patches table to 'F'

In the LAMS DataBASE, run the following SQL

update patches set patch_in_progress = "F";

Dowload, configure and build LAMS

In order to find these files again, we decided to put them in /opt but any place can do.

sudo chown you:your_group /opt/lams 
cd /opt/
git clone https://github.com/lamsfoundation/lams.git

Edit the configuration files

cd /opt/lams/lams_build
  • Make a copy of the *.properties files just be sure. In addition, do not change the properties files themselves since they may be overridden by upgrades. Put them into a file called build.properties.

Change common.properties:

db.host=localhost
db.port=3306
db.name=lams3
db.username=lams.....
db.password=real_secret....

Change file unix.properties:

# Maybe not the best place for you, but at TECFA we always create a /data directory for data that must be kept, e.g. portalware, web server files, etc.
contentrepository.base=/data/lams
#JBoss deploy directory (Unix)
server.home=/opt/wildfly
#Sass executable. 
sass_exec_file=/usr/bin/sass

Copy the properties to file build.properties

Build LAMS

It is not clear to me if one should build various components. In principle, lams-cruise alone should do the trick.

# go to the build directory
cd /opt/lams/lams_build
# Optional: build some stuff
ant build-db
ant deploy-ear    
ant deploy-tools
# build lams (ant will read the build.xml file and "cruise" is a "target" that should build the whole thing)
ant lams-cruise

At the end you should see something like:

lams-cruise:
BUILD SUCCESSFUL
Total time: 3 minutes 35 seconds

Now, in principle, LAMS is deployed in the Wildfly sever and could launch it again.

Compilation errors with OpenJDK 11

Some library is missing with openjdk 11 and something else is wrong. I did not get these errors with Openjdk 8, but then I might have installed some extra libraries in the past. I cannot remember.

   [echo] LAMS Common: Compiling Java sources
   [javac] Compiling 469 source files to /opt/lams/lams_common/build/classes/java
   [javac] warning: [options] bootstrap class path not set in conjunction with -source 8
   [javac] /opt/lams/lams_common/src/java/org/lamsfoundation/lams/policies/dao/hibernate/PolicyDAO.java:22: error: package com.sun.webkit does not exist
   [javac] import com.sun.webkit.PolicyClient;
   [javac]                      ^
   [javac] Note: Some input files use or override a deprecated API.
   [javac] Note: Recompile with -Xlint:deprecation for details.
   [javac] Note: Some input files use unchecked or unsafe operations.
   [javac] Note: Recompile with -Xlint:unchecked for details.
   [javac] 1 error
   [javac] 1 warning

Test running LAMS with WildFly

Make sure that the port that you plan to use with WildFly is free. By default the standalone server version is port 8080.

#Now test
cd /opt/wildfly/bin
./standalone.sh

This will take some time since it will have to digest LAMS.

# If your X server works and if you got Firefox installed on the server machine you can see something on the server.
firefox --new-instance
http://localhost:8080

Shutting down the test server

  • CTRL-C in the console

Else if you ran it as background process:

jboss-cli.sh --connect --command=:shutdown

Documentation and using LAMS

Attention: This wiki page is not a resource for end users like course designers or learners. Instead see:

Official LAMS 2 installation documentation
Lams Moodle integration
Trouble shooting