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)
 
(128 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.


== LAMS 2.0 RC2 Windows XP PC ==
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


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.
== LAMS 4.5+ ==
As of July 2021, LAMS 4.5 was released and is the latest stable release.  


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.
=== Getting the LAMS source code ===
Source code is available from [https://github.com/lamsfoundation/lams Github]. The code branch to use is v4.5


=== Other Software ===
'''Required software'''
* Git
* Wildfly 14.0.1
* OpenJDK 11
* MySQL 8.0
* Ant  (Java task compiler)


To run it on windows you need to install other software.
==== OpenJDK 11 ====
* Java JSE 5.0 (update 9), ''not just the JRE''. Get it from [http://java.sun.com/javase/downloads/index.jsp Sun].
In Debian/Ubuntu 20.04
* MySQL: Get it directly from [http://dev.mysql.com/downloads/ MySQL] and take the '''Installer version''' (not the zip installation).
** 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 ===
$ sudo apt install openjdk-11-jdk-headless
$ sudo apt install fontconfig
==== MySQL 8.0 DB ====


* 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.
$ 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


=== LAMS ===
===== Basic MySQL configuration =====
''/etc/mysql/mysql.conf.d/mysqld.cnf''


* 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 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
...


* 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.
After installing MySQL, create a user and a DB for LAMS and grant appropriate permissions:


== LAMS 2.1x on On Solaris 10 ==
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;


Lams 2.0 was released on December 6 2006. Since then, there were very several minor upgrades.
==== Wildfly 14.0.1 ====
On March 2008, the current releases are 2.0.4 (stable) and 2.1 (RC1). These installation notes refers mostly
to the 2.1RC1 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).


First, read the instructions in:
$ wget https://download.jboss.org/wildfly/14.0.1.Final/wildfly-14.0.1.Final.tar.gz
* [http://wiki.lamsfoundation.org/display/lamsdocs/Unix+Installer+Help Unix Installation and Updating Help] (if you plan to use the unix installer)
$ cd /opt/lams
* [http://wiki.lamsfoundation.org/display/lams/Building+LAMS Building LAMS] (if you plan a source install)
$ tar xvzf wildfly-14.0.1.Final.tar.gz
* [http://wiki.lamsfoundation.org/display/lams/Development+Environment Development Environment]


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. - [[User:Daniel K. Schneider|Daniel K. Schneider]] 18:30, 20 March 2008 (MET)
==== 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].


So, open a terminal under root ....
Wherever you have your LAMS v4.5 code, edit the following files


=== Prerequisite 0: Infrastructure ===
'''common.properties'''


* Make sure your organization doesn't stiffle your creativity with Firewalls. If they do, expect '''a lot''' of extrawork.
Primarily the DB settings and based system.  
* 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 diskspace, 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 ===
If you are building LAMS using Windows, set the osPropertiesName to "windows" instead of "unix".


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


Solaris 10 ought to have the right Java + Ant installed. Ant is an installation program like make. Note: You need the JDK/JSE or whater Sun decided to rename it (i.e. the compiler, not just the runtime)
''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.''


Check if Java can be found, i.e. type:
'''unix.properties'''
java -version
... 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.


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


This is a [http://en.wikipedia.org/wiki/Xmpp XMPP] (Jabber) chat server, that actually is called Openfire now. See:
The path to your Wildfly folder
* [http://wiki.lamsfoundation.org/display/lamsdocs/Installing+Wildfire+for+LAM Installing Wildfire for LAMS]
server.home=/usr/local/wildfly-14.0.1/
* Also read [http://www.igniterealtime.org/builds/wildfire/docs/latest/documentation/install-guide.html Installation guide] (at Igniterealtime).


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.
...  
* 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.
contentrepository.base=/var/opt/lams
* 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).
...  
server.home=/opt/lams/wildfly-14.0.1/
...  


Installation steps:
==== Compilation and deployment ====


1) Uncompress in /usr/local/wildfire or some other place
cd lams_build
ant deploy-lams


2) Start the server with ./bin/wildfire start
If no errors occurred, you are ready to start Wildfly.  
* This is a typical startup script. You later can copy this script to /etc/init.d/ etc.  


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.
  cd /opt/lams/wildfly-14.0.1/bin
  http://localhost:9090/  
  ./standalone.sh
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.


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


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.
LAMS should be available at localhost:8080/lams/ 


* Tick "Don't Show History" (Group Chat -> History Settings), but you can do this later
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. 


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]
(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>


5) Security:
== LAMS 3.1 ==
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...
As of March 2019, we do have a new LAMS installation that works fine in virtual server running Ubuntu 18.x.


=== Prerequisite 3: Configure MySQL for LAMS ===
* [https://github.com/lamsfoundation/lams Github]
* [https://wiki.lamsfoundation.org/display/lams/LAMS+3.1+in+Ubuntu Quick compile guide for Ubuntu]


Here are the steps:
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.


1) Make sure to have a MySQL '''5.x''' server. Else install it (and come back)
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


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:
=== LTI external tool integration ===
* 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):
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).


[mysqld]
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.  
....
transaction-isolation=READ-COMMITTED
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"


Then restart mysql !
=== Moodle LAMS integration through a Moodle plugin ===


3) Create a 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.


If you upgrade, you may want to make a dump for safeguarding or alternatively kill all tables if you want a fresh start. I personally enjoy destroying whole databases.
== LAMS 3.0 ==


Then create:
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.
* a database named "lams"
* a user "lams"
* Make to sure to have it run in UTF-8 mode !


Best way to do this is to use a terminal client and type something this:
'''History'''
mysql -u root -p


Then enter the following lines (alternatively read them from a file like this: <code>mysql -u root -p < input.sql</code>)
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.  
SET FOREIGN_KEY_CHECKS=0;
DROP DATABASE IF EXISTS lams;
CREATE DATABASE lams DEFAULT CHARACTER SET utf8;
SET FOREIGN_KEY_CHECKS=1;
GRANT ALL PRIVILEGES ON *.* TO lams@localhost IDENTIFIED BY 'secretpassword';
REVOKE PROCESS,SUPER ON *.* from lams@localhost;
quit


Now your database should be ready for LAMS.
'''Status as of Nov 2018'''


=== Prerequisite 4: JBOSS ===
* The old LAMS community pages are still online, but no longer maintained.


JBOSS is a Java application server. LAMS is programmed with this application framework.
* 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


* I simply got the 4.0.2 binary from [http://labs.jboss.com/portal/jbossas/download Jboss.org]
* https://demo.lamsfoundation.org/lams/ does run a 3.x demo version for which you can require a login.


* Unpack into /usr/local (or wherever else you like it)
* LAMS 3.x is available as commercial offering through [https://www.lamsinternational.com/ Lams International] and also through content services (to be verified).
gtar xzf jboss-4.0.2.tar.gz -C /usr/local


* Copy some jar files
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/


=== LAMS source file download ===


Get the archive from the [http://wiki.lamsfoundation.org/display/lams/Downloads downloads] page.
=== Prerequisites ===


Direct links: this may change !
;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)


* [http://saturn.melcoe.mq.edu.au/installers/lams-unix-installer-2.0.4.tar.gz lams 2.0.4 Australian mirror]
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.
* [http://lamscommunity.org/2.0/stable/unix/lams-unix-installer-2.0.4.tar.gz lams 2.0.4 UK mirror]


Note: If you want to play with a release candidate, it's an option to get a more recent version from the CVS software archive. Some bug already may have been fixed. On the other hand, you may encounter a new one. You can browse the [http://lamscvs.melcoe.mq.edu.au/cgi-bin/viewcvs.cgi/ lams cvs repository]. To get the code from CVS, consult [http://wiki.lamsfoundation.org/display/lams/Building+LAMS building lams]) and then build from source.
udo apt install openjdk-8-jdk


=== Pre-install configuration ===
To use Java 8 by default, you can do the following. Most software seems to use Java 8 anyhow ....
(tested with LAMS 2.1 RC1)
sudo update-alternatives --config java


0) Read the "readme" file you will find and/or again [http://wiki.lamsfoundation.org/display/lamsdocs/Unix+Installer+Help Unix Installation and Updating Help]. It's authorized gospel, this wiki article is not...


1) Decide where the files should go. Either use a typical unix installation with files
;SASS (some kind of CSS pre-processor)
all over the place or put all LAMS related stuff in some directory, e.g. /usr/local/lams.
sudo apt install sass
I prefer the second solution, since this way I can get rid of unwanted software easily...


2) Dezip the installer in some place, e.g. /src/lams
;Ant
  gtar -xvf lams-unix-installer-2.1-RC1.tar.gz
  sudo apt install ant


3) Then edit the '''lams.properties''' file according to [http://wiki.lamsfoundation.org/display/lamsdocs/Unix+Installer+Help unix installer help].
;If exists, stop your old LAMS, e.g.
This file sits in the install directory.
: /etc/init.d/lams2 stop


Make a backup first
=== Kill old LAMS ===
cp lams.properties lams.properties.ORI
 
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 ...
Then I did this (as I said I prefer all files in one place for experimental systems). Make sure that you correctly enter db and user names, locations and so forth !
Basically there are three sections:


1) Related to installation
; 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


LAMS_DIR=/usr/local/lams/lams
=== Install and configure Wildfly ===
DB_NAME=lams
DB_USER=lams
DB_PASS=secret
   
   
2) If you have the Open/wildfire chat server installed, make sure to specify the name of host machine, etc.
# 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


3) Installation settings again, I had to change nearly each line ! Make sure to have each line right.
sudo mv /src/wildfly-8.2.1.Final /opt/wildfly
sudo chown you:you /opt/wildfly
cd /opt/wildfly
more README.txt 


Port number. If you change this, you also have to reconfigure JBOSS (I don't know where but it shouldn't be hard ...)
#Now test
  LAMS_PORT=8080
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


Server URL (certainly not localhost). E.g. you want something like:
=== Create a new MySQL database and user ===
SERVER_URL=http://tecfasun1.unige.ch:8080/lams/


=== Using the installer ===
(1) Check what you got
(tested with LAMS 2.1 RC1)


* Reminder: Read [http://wiki.lamsfoundation.org/display/lamsdocs/Unix+Installer+Help Unix Installation and Updating Help]
mysqlshow -p -u root


If you did the above (editing lams.properties) alright, then make sure again that Java can be found. In principle, on Solaris systems this is the case and you can ignore instructions about setting the JAVA_HOME. To check, just type:
(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>


  echo $JAVA_HOME
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'


In a csh shell you may fix the path like this (if needed):
In the LAMS DataBASE, run the following SQL
  setenv PATH /usr/java/bin/:$PATH
  update patches set patch_in_progress = "F";


In a Bash shell:
=== Dowload, configure and build LAMS ===
export PATH=/usr/java/bin/:$PATH


Then install, i.e. type:
In order to find these files again, we decided to put them in /opt but any place can do.
./install-lams.sh


... most likely it won't work, read on.
sudo chown you:your_group /opt/lams
cd /opt/
git clone https://github.com/lamsfoundation/lams.git


; RC2 install script does not work on Solaris
'''Edit the configuration files'''


If it fails (with the one script I got it did), use debugging modes first, e.g.:
  cd /opt/lams/lams_build
  sh -x ./install-lams.sh
sh -v ./install-lams.sh
sh -vx ./install-lams.sh


Now to fix the RC1 problems:
* 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.


1) First repair a bourne shell error, i.e. you either have to make the script a bash shell (best choice):
Change common.properties:
  #!/usr/bin/bash
  db.host=localhost
or alternatively make the following change (next best):
  db.port=3306
  # export JAVA_HOME=$ORIG_JAVA_HOME
  db.name=lams3
:must become
  db.username=lams.....
  JAVA_HOME=$ORIG_JAVA_HOME
  db.password=real_secret....
  export JAVA_HOME
or just comment out the following lines (On Solaris 10 Java will be found):
# checkJava
  ....
  # export JAVA_HOME=$ORIG_JAVA_HOME


2) Then there was Linux specific line to be fixed:
Change file unix.properties:
  # cp -rv assembly/lams.ear ${DEFAULT_DIR}/deploy
  # 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.
cp -r assembly/lams.ear ${DEFAULT_DIR}/deploy
contentrepository.base=/data/lams


; Success
  #JBoss deploy directory (Unix)
You are successful when you see this:
  server.home=/opt/wildfly
  LAMS 2.1-RC1 Configuration completed!
  Please view the README for instructions on how to run LAMS.


=== Deploying and running LAMS ===
#Sass executable.
sass_exec_file=/usr/bin/sass


First time you will start up JBOSS it will take some time deploying LAMS as a web application.
'''Copy the properties to file''' <code>build.properties</code>


There is a startup script you will find in the JBOSS/bin directory. It just configures JAVA for more memory and then launches the original run.sh script from JBOSS.
'''Build LAMS'''
./usr/local/jboss-4.0.2/bin/run-lams.sh


This also will fail with RC1. Read on ...
It is not clear to me if one should build various components. In principle, lams-cruise alone should do the trick.


==== Fixing the script ====
# go to the build directory
cd /opt/lams/lams_build


In 2.1RC2 I had to fix the script, or actually just use something different.
  # Optional: build some stuff
 
  ant build-db
1) Missing shell identification. Add the following as first line:
  ant deploy-ear  
#!/usr/bin/bash
 
Note: You have to use Bash not sh (/usr/bin/sh), since the LAMS folks use bash syntax. This line:
export JAVA_HOME="/usr/java"
is wrong in traditional Bourne shell. Should read:
JAVA_HOME="/usr/java"
export JAVA_HOME
 
2) There wasn't enough heap space
E.g. from the log file (/usr/local/jboss-4.0.2/server/default/log/)
2008-03-20 11:26:15,574 ERROR [org.springframework.web.context.ContextLoader] Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with
name 'coreSessionFactory' defined in class path resource
[org/lamsfoundation/lams/commonContext.xml]: Initialization of bean failed; nested
exception is java.lang.OutOfMemoryError: Java heap space
java.lang.OutOfMemoryError: Java heap space
 
I first doubled initial and max heap with no effect, something does not pass from this script to the next one.
# export JAVA_OPTS="-server -Xms256m -Xmx512m -XX:MaxPermSize=256m"
export JAVA_OPTS="-server -Xms512m -Xmx1024m -XX:MaxPermSize=256m"
Or maybe JAVA_OPTS will have contradictory info like (a good sysadmin would try to dig and understand ...)
-server -Xms128m -Xms512m ...
 
Anyhow, I then just decided to modify the JBOSS start-up script and use it directly.
Around line 141 of file '''run.sh''' I inserted more initial and max heap and I also took $JAVA_OPTS out since for some strange reason it already was set with unwanted -XMs .Xmx.
JAVA_OPTS="-Xms512m -Xmx512m -Dprogram.name=$PROGNAME"
  #JAVA_OPTS="$JAVA_OPTS -Dprogram.name=$PROGNAME"
 
==== Start and stop LAMS ====
 
To start LAMS, go to the JBOSS bin directory:
cd /usr/local/jboss-4.0.2/bin/
Try first:
./run-lams.sh
If it doesn't work, fix heap space in the run.sh file directly (as explained above) and run it:
./run.sh &
To avoid getting all the traces in the terminal
./run.sh > /dev/null &
 
Then you should get this (e.g. last line in the log file). If not, search for errors.
2008-03-20 12:03:21,967 INFO  [org.jboss.system.server.Server] JBOSS (MX MicroKernel)
[4.0.2 (build: CVSTag=JBoss_4_0_2 date=200505022023)] Started in 1m:52s:938ms
 
To stop LAMS, just stop the JBOSS server. If it won't work, just kill the big hanging Java process.
./shutdown.sh -S
 
Always consult the log file when in doubt (the first time you start JBOSS it will take some time to install LAMS).
  tail ../server/default/log/server.log
 
==== LAMS first test ====
 
If you you are here, then LAMS ought to run, e.g. try a URL like:
http://tecfasun1.unige.ch:8080/lams/
 
If you forgot the login name and password, you can retrieve it from
/src/lams/lams-unix-installer-2.1-RC1/lams.properties
 
=== Configuration ===
 
To be continued. Basically, I managed to get the MOODLE interface working (see below).
 
=== Discussion / Problems ===
 
* I didn't use it in production so far. As next step I'll habe my students create sequences - [[User:Daniel K. Schneider|Daniel K. Schneider]] 12:30, 25 March 2008 (MET)
 
* Other people from TECFA were played with it and it's still running after a few days.
 
* JBOSS/LAMS requires quite a lot of memory (over 500MB residual memory and 800MB total size). This no problem on a big new server, but can be on an older server.
 
== Legacy notes for a lams 2.0 Solaris install ==
 
When I installed LAMS for the first time, the install had to be done manually. At some point I'll try again a manual install. For now, understand please that some things may have changed.
 
=== LAMS pre-build configuration ===
 
I configured the following entries in the following files. Most entries are related to file paths.
 
In lams_build directory:
 
File: lams/lams_build/shared.properties
  (nothing to change)
 
File: lams/lams_build/common.properties
  osPropertiesName=unix
  db.password=XXXX
 
File: lams/lams_build/unix.properties
  contentrepository.directory=/usr/local/lams/repository
 
Change this in '''three''' locations !!
File: lams_build/conf/unix/jboss/service/mysql-ds.xml
    <password>XXXX</password>
 
In lams_common directory:
 
File: lams/lams_common/db/sql/insert_unix_config_data.sql
  ('ServerURL','http://tecfasun1.unige.ch:8080/lams/');
  ('TempDir','/usr/local/lams/temp');
  ('DumpDir','/usr/local/lams/dump');
  ('SMTPServer','mail.tecfa.unige.ch');
  ('LamsSupportEmail','webmaster@tecfa.unige.ch');
  ('ContentRepositoryPath','/usr/local/lams/repository'); 
 
... Don't miss the port number for the server URL (e.g. 8080) !
 
In the same directory you may change the admin login and password (not tested !)
File: lams/lams_common/db/sql/insert_users.sql 
 
Note: I did not find an LamsHome property in any file (''this conflicts with the installation instructions'').
 
=== What if you have another server running on port 8080 ? ===
 
You can run JBOSS on a different port, but need to edit a few files. Read this:
 
* [http://wiki.lamsfoundation.org/display/lamsdocs/Configuring+Multiple+LAMS+Instances+on+One+Machine Configuring Multiple LAMS Instances on One Machine] (LAMS)
* [http://wiki.jboss.org/wiki/Wiki.jsp?page=ConfiguringMultipleJBossInstancesOnOneMachine ConfiguringMultipleJBossInstancesOnOneMachine] (JBoss)
 
=== Make directories for lams  ===
They must match the above of course
 
mkdir /usr/local/lams
mkdir /usr/local/lams/temp
mkdir /usr/local/lams/dump
mkdir /usr/local/lams/repository
 
I don't know who runs JBoss, so I just deprotected for some quick playing ...
chmod -R 777 /usr/local/lams
 
=== Build ===
Type the following commands ''in this order''. (You don't need Ecplise to build LAMS). But stop the JBOSS server when you do this.
cd /src/lams/lams_build
 
ant rebuild-db
ant assemble-ear
  ant deploy-ear
  ant deploy-tools
  ant deploy-tools
ant copyfiles


=== Run it ===
  # build lams (ant will read the build.xml file and "cruise" is a "target" that should build the whole thing)
  cd /usr/local/jboss-4.0.2/bin/
  ant lams-cruise
  ./run.sh &


The adminstrator login is '''sysadmin''' (don't forget this)
At the end you should see something like:
lams-cruise:
BUILD SUCCESSFUL
Total time: 3 minutes 35 seconds


The sysadmin login password is in the SQL file below. You may change it before you build, I was quite frustrated not to able to log in ;)
Now, in principle, LAMS is deployed in the Wildfly sever and could launch it again.
/src/lams/lams_common/db/sql/insert_users.sql


=== Server configuration ===
=== Compilation errors with OpenJDK 11 ===
See [http://www.lamsinternational.com/documentation/advanced_p.php?g=configure Configuring your LAMS Server].


* Java may not have enough heap space (it runs out of memory). Replace the 256 with something bigger. I think that the run.sh has to be fixed. Otherwise it may be the Tomcat config somewhere.
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.


File: /usr/local/jboss-4.0.2/bin/run.sh
    [echo] LAMS Common: Compiling Java sources
Around line 150 insert:
    [javac] Compiling 469 source files to /opt/lams/lams_common/build/classes/java
JAVA_OPTS="$JAVA_OPTS -Xms500m -Xmx500m -Dprogram.name=$PROGNAME"
    [javac] warning: [options] bootstrap class path not set in conjunction with -source 8
# Display our environment
    [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


=== Things I did wrong ===
=== Test running LAMS with WildFly ===


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


* Forget to specify the OS
#Now test
* Forgot to add the port number of the server URL
cd /opt/wildfly/bin
* Forgot to create the lams directory
./standalone.sh
* Only changed password in one location in lams_build/conf/unix/jboss/service/mysql-ds.xml


=== Debuging ===
This will take some time since it will have to digest LAMS.
Look at files in:
/usr/local/jboss-4.0.2/server/default/log/
Then stop JBoss,
cd /usr/local/jboss-4.0.2/bin/shutdown -S &
Repair misconfigurations above, rebuild with ant and run it again :)
I don't know if global cleaning up is an efficient idea, but I do it anyhow as a last resort when I get stuck, e.g.:
# Execute ''ant clean''
# Drop the lams database (and don't forget to create it again)
# Empty the JBoss server/default/deploy/lams.ear/ directory ?
== 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 :)
# 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


=== Short installation summary (see the above guide) ===
'''Shutting down the test server'''


I managed this to work with LAMS 2.1RC1. I did fail with an early LAMS 2.0 version - [[User:Daniel K. Schneider|Daniel K. Schneider]] 18:30, 20 March 2008 (MET). The current setup is:
* CTRL-C in the console
* Moodle runs on one machine (tecfax.unige.ch)
* LAMS runs on a different machine


I did not yet use LAMS in production so far. But I inserted the [http://www.lamscommunity.org/dotlrn/clubs/educationalcommunity/highered//lams-seq/sequence?seq%5fid=19738  Beyond the VLE] module through Moodle. I was able to:
Else if you ran it as background process:
* Use with Moodle student ID's (test and test2)
jboss-cli.sh --connect --command=:shutdown
** not use with Moodle student ID's as monitor (that's correct)
* Use it with Moodle admin ID as student and monitor
* Chat did work.


; On the Moodle side
== Documentation and using LAMS ==
First of all '''make sure''' that you do no skip step 4 below (you need the LAMS v2 module and ''not'' LAMS !)


# Get a '''new''' file (it seems that fixes are made sometimes)
'''Attention''': This wiki page is not a resource for end users like course designers or learners. Instead see:
# Unzip the file
# Move the lamstwo directory to moodle/mod/
# Move the lamstwo.php file to moodle/lang/en_utf8/
# Login as admin and go to http://yourmoodle/admin, LAMS tables will be created automatically.
# Go to modules and click settings for LAMS2 module and put the proper values in, I used:
server_url:    http://tecfasun1.unige.ch:8080/lams
server_id:      moodle
server_key:    somethingsecret
request_source: moodle


; On the LAMS side:
* [http://wiki.lamsfoundation.org/display/lamsdocs/Home LAMS documentation Wiki Home]
* The integrated server setuhttp://wiki.lamsfoundation.org/display/lamsdocs/Homep is:
Id:          moodle
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


; Notes
* [[LAMS]] (this wiki)


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)
; Official LAMS 2 installation documentation


Your JBOSS server may need '''yet more''' memory space allocated (see above)
* [http://wiki.lamsfoundation.org/display/lamsdocs/Installing+MySQL+on+Windows+for+LAMS Installing Windows for LAMS] (also includes important MySQL configuration information)


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, look for it...
* [http://wiki.lamsfoundation.org/display/lamsdocs/Integrations LAMS & LMS Integrations]


If you tried a Moodle LAMS integration in the past with an older LAMS server, your MOODLE may have junk left inside. Get rid of it (see next item).
* [http://wiki.lamsfoundation.org/display/lamsdocs/Unix+Installer+Help Unix Installation and Updating Help] (if you plan to use the unix installer)
 
; Problems
 
An error (for 2.1RC1) I was getting was:
  Could not add a new instance of lamstwo
This happened after validating a LAMS activity in Moodle. In older version of the LAMS/Moodle mod something was wrong, I believe a missing table.
 
To fix this
* Delete the LAMS2 module in MOODLE.
* Remove the files in the mod directory
* Reinstall a '''new''' version (downloaded fresh).
 
== Documentation and using LAMS ==


This page is not a resource for endusers like course designers or learners. See:
; Lams Moodle integration
* [http://wiki.lamsfoundation.org/display/lamsdocs/Home LAMS documentation Wiki Home]
* [[LAMS]] (this wiki)


; General
* [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]


; LAMS 1 (you rather should use LAMS 2)
* [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://www.linuxtraining.org.uk/blogger1.html LAMS installation on CentOS 4 (RHEL 4)] (LAMS 1.x)
* [http://lamsfoundation.org/integration/moodle/walkthru.html LAMS and Moodle Integration Walkthrough] (LAMS 1.x)
 
; LAMS 2
* [http://wiki.lamsfoundation.org/display/lamsdocs/LAMS+v2.0+Integration+Setup+Step-by-Step+Guide LAMS v2.0 Integration Setup Step-by-Step Guide]
* [[LAMS]]


; 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