ILIAS 8 Install Tutorial for Ubuntu 22.04

Errors and Solutions

Composer errors

Script php setup/cli.php build-artifacts --yes handling the post-autoload-dump event returned with error code 255 

  • Reason: Unsupported plugins
    • Solutions:
      • #1 Upgrade all these plugins so they support your ILIAS version. If this does not work
      • #2 Delete the plugins on the disk. Examples:
        • rm -R Customizing/global/plugins/Services/Repository/RepositoryObject/Openmeetings
        • rm -R Customizing/global/plugins/Modules/TestQuestionPool/Questions/assStackQuestion
        • rm -R Customizing/global/plugins/Libraries/ActiveRecord
    • If the problem persists, try: composer dump-autoload

Wrong parameter count in ilias_de.lang in line 16631 (Value: ui#:#datetime_required#:Zeit/Datum erforderlich )! Please check your language file!

  • Solution: 
    • cd /var/www/html/ilias
    • git pull
    • If this not works, remove the language that fails first in ilias/lang an repeat the step

Unable to install module simplesamlphp/simplesamlphp-assets-base, package name must be on the form "VENDOR/simplesamlphp-module-MODULENAME" or "

"Could not delete /var/www/html/ilias/libs/composer/vendor/tecnickcom/tcpdf/include/tcpdf_colors.php:

  • Solution I:
    • cd /var/www/html/ilias
    • rm -R libs/composer/vendor
    • run twice composer install
  • Solution II:
    • cd /var/www/html
    • mv ilias ilias.old
    • git clone https://github.com/ILIAS-eLearning/ILIAS.git ilias
    • cd ilias
    • git checkout release_X
    • composer install --no-dev
    • mv /var/www/html/ilias.old/data/clientname /var/www/html/iliasdata/
    • mv /var/www/html/ilias.old/ilias.ini.php /var/www/html/ilias/
    • Check if there is someting to move in ilias/Customizing

If there are no symbols right on top

  • Delete Browser Cache
  • Consider to create a menu item that leads to the loginpage
  • There is a mantis ticket allready

php setup/setup.php update errors

Identifier "ilDB" is not defined

  • Repeat migrate. 

[ERROR] For update steps in ilCertificateDatabaseUpdateSteps: step 5 was started last, but step 4 was finished last. Aborting because of that mismatch.

  • DB-Table: il_db_steps
  • Create bugticket mantis.ilias.de

For update steps in ilResourceStorageDB90: step 1 was started last, but step 0 was finished last

  • Run this script:
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
27
28
29
30
31
32
33
34
35
36
37
38
#!/bin/bash
 
# Hier den Namen der Datenbank angeben
DB_NAME="dein_datenbankname"
 
# Funktion zur Abfrage, ob Datensätze gelöscht werden sollen
delete_prompt() {
while true; do
read -p "Möchten Sie die gefundenen Datensätze löschen? (ja/nein): " yn
case $yn in
[Jj]* ) delete_records; break;;
[Nn]* ) echo "Keine Datensätze wurden gelöscht."; exit;;
* ) echo "Bitte antworten Sie mit ja oder nein.";;
esac
done
}
 
# Funktion zur Löschung der Datensätze
delete_records() {
echo "Lösche Datensätze..."
mysql -D "$DB_NAME" -e "DELETE FROM il_db_steps WHERE finished IS NULL;"
echo "Datensätze wurden gelöscht."
}
 
# Suche nach Datensätzen mit finished = NULL und Liste sie auf
RESULT=$(mysql -D "$DB_NAME" -e "SELECT * FROM il_db_steps WHERE finished IS NULL;")
 
# Überprüfen, ob Datensätze gefunden wurden
if [ -z "$RESULT" ]; then
echo "Keine Datensätze gefunden, bei denen finished NULL ist."
exit 0
else
echo "Gefundene Datensätze:"
echo "$RESULT"
fi
 
# Prompt zur Löschung der Datensätze
delete_prompt

! [NOTE] There are 2 to run:
ilFileObjectMigrationAgent.ilFileObjectToStorageMigration: Migration of File-Objects to Storage service [remaining steps: 225054]
resourcestorage.ilStorageHandlerV1Migration: ilStorageHandlerV1Migration [done]
! [NOTE] Run them by passing --run <migration_id>, e.g. --run resourcestorage.ilStorageHandlerV1Migration

  • Run this command:  php setup/cli.php migrate --run ilFileObjectMigrationAgent.ilFileObjectToStorageMigration --steps 5000
  • The 5000 means, that each step will convert 5000 files. So your first value should be much smaller for testing, egg. 100

[ERROR] Database cannot be connected. Please check the credentials.  

object.ilObjectTileImageMigration: Migration of Tile Images to the Resource Storage Service. [remaining steps: 193]

  • sudo -u www-data php setup/setup.php migrate --run object.ilObjectTileImageMigration --steps 193

1071 Specified key was too long

#!/bin/bash

# Hier den Namen der Datenbank angeben
DB_NAME="ilias"

# Die maximale Schlüssellänge in Bytes für die Datenbank festlegen
MAX_KEY_LENGTH=3072

# Funktion zum Überprüfen und ggf. Anpassen der Indexlänge für jede Textspalte in jeder Tabelle
check_and_adjust_indexes() {
echo "Überprüfung der Datenbank $DB_NAME auf potenzielle Index-Probleme..."
local adjustments=()

# Abrufen aller Tabellen in der Datenbank
local tables=$(mysql -D "$DB_NAME" -N -B -e "SHOW TABLES;")

# Durch alle Tabellen iterieren
for table in $tables; do
# Abrufen der Textspalten für die aktuelle Tabelle
local columns=$(mysql -D "$DB_NAME" -N -B -e "SELECT COLUMN_NAME FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = '$DB_NAME' AND TABLE_NAME = '$table' AND DATA_TYPE IN ('char', 'varchar', 'text');")

# Durch alle Spalten iterieren
for column in $columns; do
# Berechne die benötigte Länge in Bytes für den Index
local column_length=$(mysql -D "$DB_NAME" -N -B -e "SELECT CHARACTER_MAXIMUM_LENGTH FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = '$DB_NAME' AND TABLE_NAME = '$table' AND COLUMN_NAME = '$column';")

# Berechne die Schlüssellänge basierend auf UTF-8 (3 Bytes pro Zeichen)
local key_length=$(($column_length * 3))

# Überprüfe, ob die Schlüssellänge das Maximum überschreitet
if [ $key_length -gt $MAX_KEY_LENGTH ]; then
local new_length=$(($MAX_KEY_LENGTH / 3))

# Überprüfen, ob es Datensätze gibt, die länger als die neue Länge sind
local long_data_count=$(mysql -D "$DB_NAME" -N -B -e "SELECT COUNT(*) FROM $table WHERE LENGTH($column) > $new_length;")

if [ "$long_data_count" -gt 0 ]; then
echo "WARNUNG: Es gibt $long_data_count Datensätze in $table.$column, die länger als $new_length Zeichen sind. Diese Spalte wird nicht geändert, um Datenverlust zu vermeiden."
else
adjustments+=("$table $column $new_length")
fi
fi
done
done

if [ ${#adjustments[@]} -gt 0 ]; then
echo "Folgende Anpassungen sind erforderlich:"
for adjustment in "${adjustments[@]}"; do
echo "$adjustment"
done
read -p "Möchten Sie diese Anpassungen jetzt durchführen? (ja/nein) " answer
if [[ "$answer" =~ ^[Jj][Aa]$ ]]; then
apply_adjustments "${adjustments[@]}"
else
echo "Keine Änderungen vorgenommen."
fi
else
echo "Keine Anpassungen erforderlich."
fi
}

# Funktion zum Anwenden der vorgeschlagenen Anpassungen
apply_adjustments() {
for adjustment in "$@"; do
IFS=' ' read -r table column new_length <<< "$adjustment"
echo "Ändere Indexlänge für $table.$column auf $new_length Zeichen..."
mysql -D "$DB_NAME" -e "ALTER TABLE $table MODIFY COLUMN $column VARCHAR($new_length);"
echo "Angepasst: $table.$column auf Länge $new_length Zeichen."
done
}

# Starte den Prozess
check_and_adjust_indexes
  • Never try to shorten indexes that are to long due to their content

No Menu no Menü

  • cd /var/www/html/ilias
  • npm clean-install --omit=dev --ignore-scripts

Plugin Errors

You uninstalled accidentally etherpadlite in Administration->Plugins

  • Load your databasebackup in to mysql (do not replace the orgin db!)
  • Install phpmyadmin
  • Export the tables
    • rep_robj_xpdl_data 
    • rep_robj_xpdl_adm
  • Do the following query (SQL field) nd export the result also into a file:
1
SELECT tree.* FROM tree LEFT JOIN object_reference AS oref ON (oref.ref_id = tree.child) LEFT JOIN object_data AS odat ON (odat.obj_id = oref.obj_id) WHERE odat.type = "xpdl";
  • Open the origin database also with phpmyadmin
  • Backup DB
  • Delete tables
    • rep_robj_xpdl_data 
    • rep_robj_xpdl_adm
  • Import the first two files to create new tables
  • Open the exported query in an editor and copy every segement that begins with INSERT INTO `tree` (`tree`, `child`, `parent`, `lft`, `rgt`, `depth`, `path`) VALUES and end with  411123.411124'); in the SQL field of the origin database an klick OK
  • Other SQL queries:
    • List all etrys in object_data table: SELECT oref.* FROM object_reference AS oref LEFT JOIN object_data AS odat ON (odat.obj_id = oref.obj_id) WHERE odat.type = "xpdl";
    • List all plugins: SELECT * FROM il_plugins;
    • List all Etherpads: SELECT COUNT(*) FROM rep_robj_xpdl_data;

Plugins are not deactivated

  • If you get the following error, you did not deactivate the plugin as I said
    • "File : ./Customizing/global/plugins/Modules/TestQuestionPool/Questions/assStackQuestion/classes/class.ilassStackQuestionPlugin.php . does not Exist for plugin: assStackQuestion Check if your plugin is still marked as active in the DB Table 'il_plugin' but not installed anymore."
      • cd /var/www/html/ilias
      • mkdir -p Customizing/global/plugins/Modules/TestQuestionPool/Questions
      • cd Customizing/global/plugins/Modules/TestQuestionPool/Questions
      • git clone https://github.com/ilifau/assStackQuestion.git
  • You can also manually disable the plugins in the database table "ilplugin" using phpmyadmin

ILIAS is slowing down after upgrade

Side Editor stops working - der Seiteneditor geht nicht mehr seit ILIAS 9

Browser Issues

Cannot initialize ilCtrl if Refinery Factory is not yet available.

  • Delete Cookies


No comment has been posted yet.