ILIAS-7-Install-Tutorial for Ubuntu 20.04

ILIAS-Upgrades

Strategy - do not skip a major release

  • Do not skip a major release
  • That means:
    • If you come from 5.4 and your goal is 7.x, first upgrade to 6

Preperations

ILIAS > 5.4 (6, 7, ...)

  • If you run the PlugIn ctrlmainmenu, be aware that this PlugIn will not be available for ILIAS 6 or higher. So write down your menu structure and reconstruct is the the ILIAS menu editor that came with 5.4.

ILIAS > 6 (7, ...)

  • Only one client per installation! This means:
    • In the directory ilias/data can not be more than one client
    • If there are more, you have to set up for each client a seperate installation
      • eg. 
        • /opt/iliasdata1
        • /opt/iliasdata2
        • /var/www/html/ilias1
        • /var/www/html/ilias2

ILIAS-Versions <=6

  • ILIAS <= 6: Disable a possibly activated cache in ilias/setup/setup.php ->Client-Settings or in ilias/data/client123/client.ini.php. 
    • Otherwise you could run in the problem that the plugins will not update/get activated as you expected

Check disk size and folder size

  • Disksize:
    • df -h /
  • Foldersize:
    • du -sh /var/www/html/ilias
    • du -sh /opt/iliasdata

Check plugins

  • If you need to run a plugin (Etherpad, BBB), you should only uprade ILIAS if the current plugin supports the new version. You should update the specific plugins like described in the chapter Updates and then have a look in the file plugin.php:
    • ilias_min_version = "5.3.0";
    • ilias_max_version = "5.4.999";
  • This means, the plugin can not be used for ILIAS 6 or higher. In this case, you have tp wait wait until the new version is available.
  • I do NOT recommend to uninstall all plugins before upgrading
    • Uninstall only PlugIns that does not collect userdata 
      • E.g. if you uninstall Etherpadlite-PlugIn, hundreds of pads could disapear
  • Examples for upgrading to ILIAS 8:
    • cd /var/www/html/ilias
    • BBB
      • cd /var/www/html/ilias/Customizing/global/plugins/Services/Repository/RepositoryObject/BigBlueButton
      • git stash
      • git pull
      • git branch -r
      • git checkout release_8
        • Be aware: After choosing release_8 your ILIAS 7 installation will stop working unless it gets upgraded to the version 8 that fits with the plugin (and so on)!
    • Etherpadlite
      • cd /var/www/html/ilias/Customizing/global/plugins/Services/Repository/RepositoryObject/EtherpadLite
      • Have a lool at:
    • Flashcards
      • ??
  • If ILIAS 7.x is installed and you Upgrade a Plugin which is only suitayble for another version (8.x), your ILIAS installation will imediately STOP WORKING if you still run 7.x!
  • So this should be done when your ILIAS is in maintenance mode :)
  • Deactivate all PlugIns before proceeding in ILIAS
  • Consider to uninstall all plugins that do not contain userdata or such you will rarly use
  • Do NOT upgrade until all plugin in ./Customizing/global/plugin are capable to run with your desired ILIAS version. Your update process will fail!

PHP-Versions

Composer Version

  • We installed once composer with apt install composer
  • In Ubuntu 20.04 this gives version Composer 1.10.1 which is OK for ILIAS 7 (or 6, but I am not sure)
  • For ILIAS 8, the Composer 1.10.1 version leads to something like this:
    • PHP Fatal error:  Uncaught Error: Call to undefined function mb_strtolower() in /var/www/html/ilias/libs/composer/vendor/simplesamlphp/composer-module-installer/src/SimpleSamlPhp/Composer/ModuleInstaller.php:94
  • So I decided to upgrade the composer version to a version > 2, using this website: https://medium.com/techvblogs/update-composer-in-ubuntu-4138e36205eb
    • I think what I did was:
      • apt-get remove composer -y
      • php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
      • php composer-setup.php --install-dir=/usr/bin --filename=composer
      • For ILIAS 8: composer self-update --2
      • For ILIAS 7 (not testet): composer self-update --1

Backups

Backup the database

  • Disable ILIAS: nano /var/www/html/ilias/data/CLIENTNAME/client.ini.php
    • access = "1"
    • Copy also the database credentials from this file
  • touch /opt/scripts/dbclone
  • chmod +x /opt/scripts/dbclone
  • nano /opt/scripts/dbclone
  • Insert this and chance first lines:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#!/bin/bash
#Avoid names that contains a hyphen e.g. my-db - this script will eventually not work with hyphens. OK is my_db
dbuser=iliasuser
dbnameori=ildb
dbnameclone=ildb_clone
##############################################

#mysql --execute="DROP DATABASE ${dbnameclone};"


mysql --execute="CREATE DATABASE ${dbnameclone} CHARACTER SET utf8 COLLATE utf8_general_ci;"

mysql --execute="GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, INDEX, DROP, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES ON ${dbnameclone}.* TO '${dbuser}'@'localhost';"


if [ -f "${dbnameclone}.sql" ] ; then
echo "deleting old backupfile ${dbnameclone}.sql from disk";
rm "${dbnameclone}.sql"
fi
echo "Copying DB ${dbnameori} into a file on disk named ${dbnameclone}.sql";
mysqldump ${dbnameori} > ${dbnameclone}.sql
echo "Copying ${dbnameclone}.sql into ${dbnameclone}";
mysql ${dbnameclone} < ${dbnameclone}.sql
echo "End";

mysql --execute="SHOW DATABASES";
  • Run the script: /opt/scripts/dbclone

Test the new Database

  • Change the database name in /var/www/html/ilias/data/info/client.ini.php to the name ildb_clone for to test if the database would do its job.
  • Rename the database name in the client.ini.php to the originally name and start the upgrade process

Backup the Client Files

  • Since ILIAS 7.x, a new file storage concept has been implemented. That means, that after migrating your files due the upgrade process there would be no go back to ILIAS < 7. 
  • Backup your client data:
    • Backup all from /var/www/html/ilias/data/clientname
    • Backup all from /opt/iliasdata/clientname

Upgrade ILIAS

Select a branch and get the new ILIAS version

  • cd /var/www/html/ilias
  • git stash
  • git pull
  • Have a look at the current branch: git branch
  • List all available branches: git branch -r
  • Choose a branch (here release 6): git checkout release_6
  • Till ILIAS 6:
    • cd /var/www/html/ilias
    • composer install --no-dev
    • Go to ilias/Setup/setup.php to perform database updates
    • Enable the client
  • Since ILIAS 7.x or higher:
    • cd /var/www/html/ilias
    • composer install --no-dev
      • Delete all plugin folder thet composer do not like (error code 255). Better than deletion is to move them to another folder outside. Plugin directorys nromally do not contain userdata.
      • You are done when you red in green: OK All static artifacts are build!
    • php setup/setup.php update
      • Or try: php setup/setup.php migrate --no-plugins
    • php setup/setup.php migrate
      • Or try: php setup/setup.php migrate --no-plugins
      • If the files are not converted to the new storage yet, try: php setup/cli.php migrate --run ilFileObjectMigrationAgent.ilFileObjectToStorageMigration --steps 100
      • Repeat the step until everything is migrated. Raise steps value, eg. 5000.
  • <= ILIAS 6: Login to ILIAS and perform language updates in Administration->Languages and Administration>PlugIns
  • Activate plugins, maybe you have to do an db update first (all in Administration->plugins)
  • Download a new online help file https://docu.ilias.de/goto_docu_cat_3255.html
  • Next page: Troubleshooting!


No comment has been posted yet.