ILIAS-Tricks not only for Schools
Einen Webserver mit VirtualBox installieren
- https://bbs-ilias.de/info/goto.php?target=blog_62_13&client_id=info
- Updatehinweise erhalten Sie hier: https://bbs-ilias.de/info/goto.php?target=blog_62_15&client_id=info
Gezeigt wird die Installation von ILIAS 5.1 unter Ubuntu 14.04 LTS Server. Das Ergebnis kann mal als VirtualBox-Image weiter unten herunterladen. Die Installation wurde mit der Netzwerkonfiguration "Netzwerkbrücke" umgesetzt, um ein realitätsnahes Szenario anzubieten.
Die Installation erfolgt mit VirtualBox. Sie umfasst:
- Installation der Server-Komponenten
- Installation von ILIAS 5.1 via git
- Installation des Musterclients (bzw. Schulclients) und eines "frischen" Clients
- Installation des Lucene-RPC-Servers
- Installation des Java-Chatservers
- SSL-Unterstützung
- WebAccess-Checker
- Cronjobs
Wichtige Hinweise zur Inbetriebnahme des Images
![]()
|
Wenn Sie VirtualBox installiert haben, können Sie das ZIP-File einfach herunter laden, entpacken und starten.
Am Ende gibt es Tipps zur Umsetzung und zur E-Mail-Konfiguration.
Letztes Update: 13.06.2017
Vorbereitungen
Benutzernamen und Passwörter
User: schulclient oder root
Passwort (für alles): schulclient
Installation des Betriebssystems
Die Daten der VM können in VirtualBox abgerufen werden. Es handelt sich um eine Installation in deutscher Sprache. Alle Daten befinden sich auf einer Festplatte. Automatische Aktualisierungen wurden ausgechaltet.
Als Netzwerk wurde "Netzwerkbrücke" gewählt. Dort muss für jedem Host die physikalische Netzwerkkarte ausgewählt werden, die über einen Internetzugang verfügt, z.B. WLAN0.
Die installierte Software wurde wie folgt gewählt:

Erstes Login über die Konsole und SSH
Wir loggen uns über die Konsole von VirtualBox direkt ein mit dem User/Passwort schulclient:

Nach dem erfolgreichen Login werden wir mit sudo -s Root (Administrator).
Um die IP-Adresse herauszufinden geben wir ein: ifconfig Die IP-Adresse lautet 192.168.2.29:
In in diesem Fall lautet die IP 192.168.2.32 (siehe folgendes Bild):

Mit einem SSH-Client unserer Wahl (Windows-User sollten Putty verwenden) loggen wir uns entsprechend ein. Der Port ist noch auf Standard gesetzt (22). Wer Linux oder OS X als Host verwendet, gibt einfach ein:ssh 192.168.2.32 -l schulclient
Wichtig: Wir machen alles als root, führen also nach jedem Login sudo -s aus. Beispiel:
Komponenten installieren und einstellen
Durch die obige Auswahl der Komonente LAMP sind schon die wesentlichen Teile installiert, die wir für ILIAS benötigen. Es fehlen lediglich diese Programme, die wir alle auf einen Schlag installieren - zentraler Paketverwaltung sei Dank :-)apt-get install php5-gd php5-xsl php-pear php5-ldap php5-radius php5-mcrypt php5-xmlrpc php5-dev php5-curl curl htmldoc imagemagick nano phpmyadmin openjdk-7-jre zip git htop wget memcached php5-memcached libapache2-mod-xsendfile recode
Hinweis: Wir verwenden apache2 als Webserver.
Als Test des Webservers können wir im Browser mit 192.168.2.32/phpmyadmin PHPMyAdmin aufrufen und uns einloggen mit dem Benutzer root und dem Passwort schulclient.
Einstellungen in der Datei php.ini
Wer den Webserver ernsthaft betreiben möchte, muss einige Dinge in der Datei /etc/php5/apache2/php.ini einstellen. Details dazu finden sich unter http://www.ilias.de/docu/goto_docu_pg_6531_367.html. Wir stellen die wichtigsten Parameter wie folgt ein und öffnen dazu die Datei mit dem Editor Nano:nano /etc/php5/apache2/php.ini
Anpassung an die ILIAS-Skripte:max_execution_time = 600max_input_vars = 10000memory_limit = 200M
Damit der Upload funktioniert:; or any higher values for post_max_size and upload_max_filesizepost_max_size = 60Mupload_max_filesize = 40M
Wir stellen die Fehlerausgabe an, solange wir an dem Server herumschrauben. Im Produktivbetrieb schalten wir es wieder ab:display_errors = On
Sehr wichtig ist es, das Errorreporting einzustellen. Notice-Meldungen dürfen nicht angezeigt werden, da ansonsten das Kopieren von Elementen in ILIAS nicht klappt (bleibt bei 0% stehen):error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT & ~E_NOTICE
Session-Verwaltung:session.gc_probability = 1session.gc_divisor = 100session.gc_maxlifetime = 3600session.hash_function = 0
Wir starten den Webserver neu, damit die Änderungen aktiv werden:/etc/init.d/apache2 restart
Die Meldung Could not reliably determine the server's fully qualified domain name ignorieren wir zunächst.
Den Webserver Apache einstellen
Die Konfigurationsdateien befinden sich im Verzeichnis /etc/apache2. Im Verzeichnis /etc/apache2/sites-available kann man die wesentlichen Parameter bestimmen. Auch wichtig ist die Datei /etc/apache2/apache2.conf und /etc/apache2/ports.conf. Ich belasse diese Parameter aber aus Zeitgründen alle auf Standard.
Allerdings aktivieren wir einige Module, sofern nicht schon aktiv:a2enmod rewrite dav_fs dav expires headers proxy socache_shmcb ssl vhost_alias
ILIAS installieren
Für die Installation von ILIAS benügen wir 2 Verzeichnisse. Zum einen ist dies das Verzeichnis im Webspace /var/www/html/ilias und zum anderen das Verzeichnis außerhalb des Webspaces /opt/ilias. Letzteres legen wir nun an:mkdir /opt/iliasdatamkdir /opt/iliasdata/lucene
Wir laden nun ILIAS herunter. Wir wechseln in das Verzeichnis /var/www/html und laden mit Git alles herunter:git clone https://github.com/ILIAS-eLearning/ILIAS.git ilias
Weitere wichtige Git-Befehle finden sich unter http://www.ilias.de/docu/goto_docu_pg_32446_367.html.
Dort wird auch beschrieben, wie man Updates einspielt oder die Version wechselt.
Rechte neu setzen
Da wir mit root unsere Arbeiten im Dateisystem durchführen, aber root nicht der "Betreiber" des Webservers ist (sondern www-data) müssen wir die Rechte regelmäßig anpassen. Aber auch aus anderen Gründen ist dies sinnvoll und obligatorisch. Am besten wird dies durch ein Skript erledigt, das wir zu diesem Zweck immer wieder ausführen. Wir erstellen uns dazu ein Verzeichnis:mkdir /opt/scripts und erstellen mit dem Editor nano die Datei rechteneu:nano rechteneu
Dort hinein kopieren wir diese bash-Befehle:
1 | #!/bin/bash |
Später fügen wir hier noch Zeilen hinzu.
Dann wird das Skript ausführbar gemacht (im Verzeichnis /opt/scripts):chmod +x rechteneu
und ausgeführt:./rechteneu
ILIAS-Setup aufrufen
Da nun alle Dateien heruntergeladen und die Rechte korrekt gesetzt wurden, rufen wir ILIAS im Browser auf:192.168.2.32/ilias/setup/setup.php
Die weiteren Schritte sind eigentlich wenig erklärungsbedürftig. Um Latex kümmern wir uns nicht. Hier noch ein Bild:

Einen neuen Client erstellen
Während wir gleich den Schulmuster-Client herunterladen, erstellen wir nun zunächst einen neuen Client. Als Datenbank wählen wir MySQL. Im nächsten Fenster geben wir zunächst den Root-Account MySQL ein:

Im nächsten Fenster wählen wir "Create Database" mit der Kollation "utf8_general_ci":
Hinweis: Danach "Apply Hotfixes" ausführen.

Die dann folgende Installation der Sprache sollte selbsterklärend sein. Ebenso wie die folgende Maske. Wir registrieren den Client, da wir eine NIC-ID benötigen. Dann klicken wir auf "Finished" und können uns einloggen unter 192.168.2.32/ilias

Wir gehen noch einmal in das ILIAS-Setup und aktivieren im Menü "List auf Clients" die Option "Client Selection" oben rechts.
Installation des Schulclients
Kopieren der Dateien
Auf BBS-ILIAS finden sich die Download-Links: https://bbs-ilias.de/info/goto.php?target=cat_71&client_id=info. Wir kopieren uns den Downloadlink https://bbs-ilias.de/schulclient.zip in die Zwischenablage und wechseln in das Verzeichnis /opt und erstellen dort ein Verzeichnis muster:mkdir /opt/muster
und wechseln dorthin und laden alles herunter:wget https://bbs-ilias.de/schulclient.zip
Die Dateien werden entpackt und gleich an Ort und Stelle verschoben (das Verschieben ist wichtig, da das Verzeichnis iliasschoolmaster 2 Mal vorkommt...):unzip schulclient.zipunzip Customizing.zipcd Customizingcp -R * /var/www/html/ilias/Customizingcd ..unzip iliasdatadir.zipmv iliasschoolmaster /opt/iliasdata/unzip iliaswebdir.zipmv iliasschoolmaster /var/www/html/ilias/data//opt/scripts/rechteneu
Upload der Datenbank
Wir laden uns die Datenbank auf unseren Rechner und rufen http://192.168.2.32/phpmyadmin/ auf. Mit dem User root und dem Passwort schulclient loggen wir uns ein. Wir erstellen zunächst eine leere Datenbank:

Wir rufen diese Datenbank auf und importieren unsere Datei Datenbank.zip:

In einem Produktivsystem würden wir nun einen Datenbankuser mit einem komplizierten Passwort erstellen und dieser Datenbank zuordnen. Wir verzichten darauf.
Einstellung der Datei client.ini.php
Im Verzeichnis ilias/data/iliasschoolmaster befindet sich die Datei client.ini.php, welche wir nun öffnen:nano /var/www/html/ilias/data/iliasschoolmaster/client.ini.php
Dort müssen wir den Datenbankuser einstellen, in unserem Falle root mit dem Passwort schulclient. In einem Produktivsystem wird dies natürlich mit einem anderen User gemacht. Das Ganze sieht dann so aus:
1 | [db] |
Nun sollte der Schulclient laufen. Es folgen die Feinheiten.
Einrichung der Java-Komponenten
Unter den Java-Komponenten verstehe ich den Lucene-RPC-Server, den man u.a. für die geniale Volltextsuche benötigt und den Chatserver. Der Chatserver wird übrigens ab ILIAS 5.2 nicht mehr mit Java laufen.
Einrichtung der Lucene-Suche
- Dieser Teil (Lucene-RPC-Server) ist nicht mehr aktuell. Bitte lesen Sie hier die aktuelle Anleitung: https://bbs-ilias.de/info/goto.php?target=blog_62_13&client_id=info
- Diese Anleitung wurde aber für das downloadbare VBox-Image verwendet.
Zunächst gehen Sie in das Verzeichnis /var/www/html/ilias/Services/WebServices/RPC/lib/
Im Browser rufen wir die Seite http://www.oracle.com/technetwork/apps-tech/jdbc-10201-088211.html auf und stimmen dem Licence Agreement zu. Dann laden wir die Dateien herunter (Hinweis: Mittlerweile geht dieser Schritt nicht mehr. Sie müssen einen anderen Weg finden, die Dateien dorthin zu laden, z.B. mit proftpd und Filezilla):wget http://download.oracle.com/otn/utilities_drivers/jdbc/10205/ojdbc14.jarwget http://download.oracle.com/otn/utilities_drivers/jdbc/10204/orai18n.jar
Wir erstellen das Konfigfile im selben Verzeichnis:nano ilServer.properties
und kopieren diese Zeilen hinein:
Wenn die Datei ilServer.properties bereits besteht, löschen wir zuvor den Inhalt.
1 | [Server] |
Der obige Code ist von einem Blogeintrag von mir kopiert und muss angepasst werden. Wir benötigen die beiden Client-IDs und die zugehörigen NIC-IDs, welche wir im ILIAS-Setup Details->Overview erhalten. Ebenso muss der ILIAS-INI-Pfad angepasst werden, da unser ILIAS-Verzeichnis sich nicht in /var/www/info sondern in /var/www/html/ilias befindet. Unten können wir die Daten ablesen:


So sieht das dann richtig aus:
Anmerkung: Ich bin hier so kleinschrittig, weil es immer wieder Fehler in diesem Bereich gibt. Ein häufiger Fehler ist, dass der Port oder die IP falsch angegeben werden.
1 | [Server] |
Um das Ganze zu starten, erstellen wir das Start-Stop-Skript:nano /etc/init.d/ilserver
mit diesem Inhalt, welcher bereits an diese Installation angepasst wurde (wir beachten bitte das folgende Warndreieck!):
Der libpath muss in Zeile 31 eingestellt werden! Hier lautet erlibpath="/var/www/html/ilias/Services/WebServices/RPC/lib/" #Path to ojdbc14.jar, orai18n.jar, ilServer.properties
1 | #!/bin/sh |
Das Skript wird ausführbar gemacht:chmod +x /etc/init.d/ilserver
Dann starten wir den Server:/etc/init.d/ilserver start
Wir sorgen dafür, dass der ilserver automatisch beim Booten startet:cd /etc/init.dupdate-rc.d -f ilserver removeupdate-rc.d ilserver defaults 93
Lucene-Suche in ILIAS aktivieren
Wir loggen uns in die beiden Clients nacheinander ein und geben zunächst unter
Administration->Allgemeine Einstellungen->Server->Java-Server
die IP und den Port ein. Am bestebn kopiert man diese Daten, da hier oft Tippehler auftreten:nano /var/www/html/ilias/Services/WebServices/RPC/lib/ilServer.properties
So soll das dann aussehen:

Danach wird die Suche unter Administration->Suche aktiviert. Um auch etwas zu finden, muss die Indizierung ausgelöst werden. Dies wird erledigt unter Administration->Allgemeine Einstellungen->Cron-Jobs->Lucene-Suchindex aktualisieren.
Im Schulclient kann man dann Lucene testen (Eingabe des Suchwortes "Klasse"):

Problembehandlung Lucene
Ist php-curl installiert?apt-get install php5-curl
Es ist immer nur eine Kleinigkeit, ein Versehen. Sachdienliche Hinweise liefert zuverlässig das Logfile:nano /var/log/ilServerinfo.log
Oder: Nach einem Reboot wird alles gut ...reboot
Ob der Server läuft, kann man gut mit htop herausfinden:htop
ergibt im Erfolgsfall:
Mit/etc/init.d/ilServer stop
müssen diese Einträge nach einigen Sekunden verschwinden.
Einrichtung des Java-Chatservers
Für den Chatserver benötigen wir eine IP, die von außen - also aus dem lokalen Netzwerk oder Internet - erreichbar ist. In unserem Fall ist dies die IP 192.168.2.32, die wir oben über ifconfig ermittelten. Wir legen einen beliebigen Port fest, z.B. 8181 und geben diese Werte in ILIAS ein. Zunächst aktivieren wir abder SOAP unter Administration->Allgemeine Einstellungen->Server Soap.
Unter Administraton->Chat geben wir nun die obigen Daten ein und aktivieren ihn natürlich:
Hinweis: Man benötigt einen User, der sich einloggen kann (hier: schueler1) und man muss die Instanz eindeutig benennen. Das Bild unten zeigt die Einstellung des Clients iliasschoolmaster (nicht client1, den wir beim Chat vernachlässigen).
Im Fenster "Chat-Server-Einstellungen" geben wir ein:

Der Chatserver wird nun per Skirpt gestartet. Die folgenden Schritte sind auszuführen:
touch /etc/init.d/ilchat
chmod +x /etc/init.d/ilchat
nano /etc/init.d/ilchat
Es wird der unten stehende Code eingefügt. Ggf. müssen die Pfade in den den Zeilen 21 und 22 angepasst werden.
1 | #!/bin/bash |
Wir starten den Chatserver dann mit/etc/init.d/ilchat start
Wir sorgen dafür, dass der Chatserver und der Lucene-Server automatisch beim Booten starten:cd /etc/init.dupdate-rc.d -f ilchat removeupdate-rc.d -f ilserver removeupdate-rc.d ilserver defaults 93update-rc.d ilchat defaults 94
Hinweis: Der Chatserver gibt seinen Output auf die Konsole aus. Das ist ein Schönheitsfehler, mit dem wir leben können.
Feinheiten
Pear-Pakete installieren
pear install mailpear install Auth_HTTPpear install XML_RPC
Webroot anpassen
Wenn wir unsere Server-IP-Adresse 192.168.2.32 eingeben, werden wir bisher nicht auf ILIAS weiter geleitet. Das ändern wir durch eine index.php-Date, die die Weiterleitung nach /ilias übernimmt:
cd /var/www/html
rm index.html
nano index.php
Wir fügen diesen Code ein:
Cache-Einstellungen
Im ILIAS-Setup können wir für die Mandanten Memcache in den Client-Details unter "Global Cache" aktivieren. Die Memcache-Node setzen wir wie folgt (Host: 127.0.0.1 - Port: 11211):
Nach dem Speichern der Einstellung mit "Add Memcache Node" wählen wir noch die Komponenten auf der Folgeseite aus:

Cronjobs ausführen
Um wiederkehrende Aufgaben automatisch auszuführen, öffnen wir die Datei crontab:nano /etc/crontab
In der Crontab sollten folgende Einträge vorhanden sein:
1 | # /etc/crontab: system-wide crontab |
Apache einrichten inkl. SSL-Verschlüsselung
Bearbeitung der Datei /etc/hosts
Die Datei /etc/hosts sah nach der Installation wie folgt aus:
1 | 127.0.0.1 localhost |
Nach einen Restart des Apaches mit /etc/init.d/apache2 restart kam es immer zu dieser Fehlermeldung:
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
Diese können wir unterdrücken, in dem wir Zeile 1 wie folgt verändern:127.0.0.1 localhost schulclient.local
Wenn später noch echte Domains und IP-Adressen hinzukommen, könnte eine Zeile wie diese hinzugefügt werden:195.110.43.152 bbs-ilias.de www.bbs-ilias.de www
Die Datei für den http-vhost optimieren
Unter /etc/apache2 befinden sich die wichtigen Konfigurationsdateien für den Apache. Zunächst schauen wir an, welche Konfigurationsdateien derzeit aktiv sind, in dem wir einen Blick in das entsprechende Verzeichnis werfen:ls /etc/apache2/sites-enabled
000-default.conf
Die Datei 000-default.conf werden wir nun deaktivieren:a2dissite 000-default.conf
Stattdessen gehen wir nun in das Verzeichnis /etc/apache2/sites-available und erstellen eine neue Vhost-Datei:nano schulclient.conf
Wir fügen folgenden Inhalt ein:
1 | <VirtualHost *:80> |
Im oberen Teil sind einige Zeilen auskommentiert, mit deren Hilfe man https erzwingen kann oder deren Infos später hinzugefügt werden können.
Wir aktivieren die Datei mita2ensite schulclient.conf
und starten den Webserver neu/etc/init.d/apache2 restart
https für den Apache2 aktivieren
SSL-Verbindungen über das Protokoll https sind heutzutage eine Selbstverständlichkeit. Man muss für ein günstiges Zertifikat (12 Monate) etwa 17 Euro "hinlegen". Dazu gab es auch schon einen Blogbeitrag. Wir werden unser Zertifikat aber selbst ausstellen, so dass wir Meldungen, wie "Dieser Verbindung wird nicht vertraut" erhalten - sei es drum.
Zunächst richten wir uns einen Ordner ein, in dem wir die benötigten Dateien abspeichern und wechseln dorthin:mkdir /etc/apache2/ssl
Um mich nicht unnötig zu wiederholen: Es gibt unzählige Anleitungen zu diesem Thema. Ich halte mich nun selber an eine Anleitung: https://thomas-leister.de/eine-eigene-openssl-ca-erstellen-und-zertifikate-ausstellen/
Hinweis: Den Mittelteil der Anleitung, in der es um den Import des Zertifikats in Browsern geht, überspringen wir.
Nun erstellen wir die entsprechende vhost-Datei im Verzeichnis /etc/apache2/sites-available:
1 | <IfModule mod_ssl.c> |
Ist die Datei fertig, muss sie wieder aktiviert werden:a2ensite schulclient-ssl.conf/etc/init.d/apache2 restart
Ruft man nun den Server über den Browser via https auf, erscheint diese Meldung (in Firefox):

Klickt man nun auf "Ich kenne das Risiko", kommt diese Meldung nicht wieder, und verschlüsselt ist es trotzdem :-)
Letzlich sieht das dann so aus:

Den Server im Internet bekannt machen
Man kann durchaus diese Installation als produktiven Webserver im Internet verwenden. Natürlich müsste man alle Passwörter und zum Teil die Benutzernamen überarbeiten. Wenn der Server über SSH im Internet verfügbar sein soll, würde ich den SSH-Port ändern.
PHPMyAdmin sollte einen neuen Standardpfad erhalten und mit einer.htaccess-Datei abgesichert werden. Auch dazu gibt es Anleitungen im Internet. Oder man deinstalliert es, wenn man es nicht mehr benötigt.
In vielen Schulen laufen solche Server in VirtualBox mit Portweiterleitung über den DSL-Anschluss von "Schulen ans Netz". Dagegen ist auch nichts einzuwenden. Auf keinen Fall sollte man dies mit seinem eigenen Hausanschluss realiseren, da man dann nicht mehr im Internet anonym ist. Letztlich sehe ich diese Arbeit hier als Anregung zum Lernen und Verstehen; als Sprungbrett zu einem vernünftigen vServer. Hier empfehle ich https://www.hosteurope.de/. Ein kleinerer vServer ab 60 GiB HDD und 4 GiB RAM sollte ausreichen. SSD-Speicher zu nehmen, lohnt sich! Auch kann man leicht das Paket upgraden, also ohne Neuinstallation.
E-Mail-Unterstützung
Um die E-Mail-Unterstützung zu realisieren, sehe ich 3 Wege:
Alle 3 Varianten sind für den engagierten Poweruser umsetzbar. Bei Plesk ist man extrem eingeschränkt und kann auch schnell alles zerstören. Ohne Vollbackups sollte man hier nichts machen. Ich mag Plesk nicht. SSMTP ist extrem simpel und dann völiig ausreichend, wenn der Server ohnehin nur senden soll. Die Einrichtung ist eigentlich Minutensache. Postfix kann auch Mails empfangen und stellt den Königsweg dar, wenn man über eine Domain mit einer festen IP verfügt. Wer den Server mit VirtualBox betreibt, muss eigentlich SSMTP nehmen und wird damit auch zufrieden sein.




