Handbuch zur MoodleBox (auch offline)
4. MoodleBox erweitern
4.9. URL-Verkürzer YOURLS
Kurze URLs für den einfachen Zugriff, für QR-Codes und für iBeacons
Für einen Workshop mit Lehrkräften habe ich für die MoodleBox eine Verkürzung von URLs gebraucht, und zwar auf maximal 17 Zeichen. Aber alles der Reihe nach ...
Aufgabenstellung
Für meinen Workshop "MoodleBox im Wald" im Auftrag von LiGa Sachsen-Anhalt sollte ich Lehrkräften verschiedene Ideen für digitale Unterichtssituationen im freien Gelände vermitteln. Mit der OpenSource-App OsmAnd (iOS, Android) und der digitalen Landkarte
OpenStreetMap sollten die Lehrkräfte mehrere GPS-Koordinaten im Umfeld des Tagungshauses finden und aufsuchen. An den Zielpunkten sollte jeweils eine MoodleBox versteckt sein, auf der verschiedene Aufgaben erledigt werden sollten. Die URLs zu den
Aufgaben sollten digital über iBeacons bereitgestellt werden. Eigentlich war meine erste Idee, QR-Codes zu verwenden, um die Lehrkräfte auf die zu erledigenden Aufgaben zu lenken. Um aber eine "vandalismussichere" Idee zeigen zu können, fielen die
QR-Codes schnell aus, denn QR-Codes auf Papier können in einer realen Umsetzung durchaus verloren gehen, weil sie nass regnen, stark verschmutzen oder abgerissen werden können. So fand ich schnell Gefallen an den iBeacons zur Bereitstellung der URLs.
Umsetzung
Für eine MoodleBox mit einfacher Spannungsversorgung kommt eigentlich nur der Raspberry Pi 3B in Frage. Die meisten PowerBanks haben einen USB-Anschluss mit 5V/2A ... nicht genug für einen Raspberry Pi 3B+ mit 5.1V/2.5A oder einen Raspberry Pi 4B mit 5.1V/3.0A. Das WLAN der MoodleBox ist so konfiguriert, dass es kein Kennwort braucht. Alle können sich mit ihrem digitalen Endgerät mit der MoodleBox verbinden.
Um konkrete Aufgaben zu erfüllen, brauchen die Teilnehmer/innen jeweils eine URL zur Aufgabe. Wie oben erwähnt, sollten iBeacons zum Einsatz kommen. Mit dem Calliope mini oder dem Micro:bit lassen sich iBeacon sehr einfach im schulischen Umfeld erstellen. In der Programmierumgebung MakeCode gibt es die passenden Befehle dafür ... siehe http://moodlebox.home/mod/page/view.php?id=231, aber nur mit maximal 17 Zeichen langen URLs. Die Materialien auf der MoodleBox werden normalerweise über einen Link wie eben genannt aufgerufen. Ein iBeacon kann aber nur URLs mit maximal 17 Zeichen verarbeiten, so dass der genannte Link auf http://moodlebox.home/mo abgeschnitten und nicht funktionieren würde.
Alleine die URL zur Startseite http://moodlebox.home/ hat 15 Zeichen, wobei die Protokollangabe http:// natürlich ebenfalls gespeichert werden muss, aber bei den 17 Zeichen nicht mitzählt ... siehe https://makecode.microbit.org/reference/bluetooth/advertise-url. Okay, die MoodleBox lässt sich auch über http://moodlebox/ mit nur 10 Zeichen aufrufen ... 5 Zeichen gespart ... und es bleiben 7 weitere Zeichen für die Weiterleitung. Für eine Moodle-URL reicht das in der Regel immer noch nicht. Bei der Vorbereitung auf den Workshop mit zwei Teams habe ich die MoodleBox so konfiguriert, dass die Teambereiche über die Adressen http://moodlebox/x/t1 für Team 1 und http://moodlebox/u/t2 für Team 2 aufgerufen werden konnten. Dafür musste ich im Moodle-Quellcode ein Unterverzeichnis u und darin zwei weitere Unterverzeichnisse t1 und t2 anlegen ... die darin jeweils enthaltenen Weiterleitungsdateien index.php habe ich für den Workshop händisch codiert. Dies erfordert aber den direkten Zugriff auf den Moodle-Quellcode und Kenntnisse zum Erstellen einer PHP-Weiterleitung.
Für eine Umsetzung im normalen Unterricht kann ein solcher technischer Eingriff nicht erwartet werden, zumal er sehr unflexibel und fehleranfällig ist. Keine Lehrkraft würde sich damit nebenbei beschäftigen wollen, weswegen ich nach einer leicht bedienbaren
Lösung gesucht habe.
URL-Verkürzer im Internet
Die üblichen Online-Dienste https://kurzelinks.de, https://t1p.de, https://is.gd, https://bit.ly,
https:/goo.gl, https://tiny.cc oder https://tinyurl.com im Internet kommen nicht in Frage, weil der URL-Verkürzer
auch offline funktionieren und die URLs ohne Internetverbindung bereitstellen können muss. Wenn wie beim Workshop "MoodleBox im Wald" keine Internetverbindung besteht, würde mit diesen URL-Verkürzern kein Kurzlink dekodiert werden.
URL-Verkürzer YOURLS lokal auf der MoodleBox
Auf der MoodleBox habe ich nach mehreren Funktionstests zusätzlich die Open-Source-Software YOURLS - Your Own URL Shortener http://yourls.org installiert. Zusätzlich habe ich in der Datei /etc/hosts ermöglicht, die MoodleBox über die Kurz-URL http://mb/ aufrufen zu können. Jetzt sind kurze URLs der Form http://mb/u/c7s2/ ... das sind nur 10 Zeichen von den 17 maximal möglichen ... und jetzt funktionieren auch die iBeacons problemlos.
Die Software YOURLS kann frei über die Adresse https://github.com/YOURLS/ heruntergeladen werden. Das Verzeichnis yourls liegt auf der MoodleBox im Verzeichnis /var/www/yourls neben /var/www/moodle und ist mit einen symbolischen Link x in Moodle eingebunden.
Meine Konfiguration besteht aus drei Teilen, der Änderung in der Datei /etc/hosts, den Einstellungen in der Datei /var/www/yourls/user/config.txt und der Ergänzung in der Datei /etc/nginx/sites-available/default.
Dies ist alles! Die Datenbank yourls wurde automatisch beim ersten Aufruf der Administrationsseite http://mb/x/admin/ angelegt.
Ich habe mehrere Kurzlinks erzeugt, z.B. die URL http://moodlebox.home/course/view.php?id=2 mit dem Kurzlink http://mb/x/c2/ ...
sehr kurz und sehr einprägsam! Die nächste getestete URL http://moodlebox.home/course/view.php?id=7§ion=2 hat den Kurzlink http://mb/u/c7s2/.
Weitere Verweise zur Projektumsetzung
https://bildungsportal.magdeburg.de/moodle2/course/view.php?id=34
https://discuss.moodlebox.net/d/269-using-an-url-shortener-on-the-moodlebox
https://github.com/moodlebox/moodlebox/issues/90
https://ckblog2016.wordpress.com/2017/08/11/calliope-mini-als-ble-beacon/
https://makecode.microbit.org/v1/reference/bluetooth/advertise-url
https://yourls.org
Konfigurationsdateien
sudo nano /etc/hosts
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
10.0.0.1 moodlebox mb
sudo nano /etc/nginx/sites-available/default
# Default server configuration
#
server {
listen 80 default_server;
listen [::]:80 default_server;
# listen 443 ssl;
# listen [::]:443 ssl;
# ssl_certificate /etc/nginx/ssl/moodlebox.pem;
# ssl_certificate_key /etc/nginx/ssl/moodlebox.key;
root /var/www/moodle;
index index.php index.html index.htm index.nginx-debian.html;
server_name moodlebox;
location / {
try_files $uri $uri/ =404;
}
location /dataroot/ {
internal;
alias /var/www/moodledata/;
}
location ~ [^/]\.php(/|$) {
include fastcgi_params;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_read_timeout 300;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
fastcgi_index index.php;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PHP_VALUE "max_execution_time=300\n upload_max_filesize=50M\n post_max_size=50M\n max_input_vars=5000";
client_max_body_size 50M;
}
### for yourls url shortener
location /x/ {
try_files $uri $uri/ /x/yourls-loader.php$is_args$args;
}
###
}
sudo nano /var/www/yourls/user/config.txt
/** MySQL database settings */
define( 'YOURLS_DB_USER', 'moodlebox' );
/** MySQL database password */
define( 'YOURLS_DB_PASS', 'Moodlebox4$' );
/** The name of the database for YOURLS */
define( 'YOURLS_DB_NAME', 'yourls' );
/** MySQL hostname.
** If using a non standard port, specify it like 'hostname:port',
** eg. 'localhost:9999' or '127.0.0.1:666' */
define( 'YOURLS_DB_HOST', 'localhost' );
/** MySQL tables prefix */
define( 'YOURLS_DB_PREFIX', 'yourls_' );
/** MySQL database engine */
define( 'YOURLS_DB_DRIVER', 'mysqli' );
/** YOURLS installation URL -- all lowercase and with no trailing slash. */
define( 'YOURLS_SITE', 'http://mb/x' );
CC BY-SA - Ralf Krause, moodleSCHULE e.V. - 20230115