Chamilo LMS unter Ubuntu 18.04 LTS installieren
Chamilo ist ein populäres, quelloffenes Lernmanagementsystem (LMS), das weltweit für E-Learning und teamorientierte Zusammenarbeit eingesetzt wird.
Diese Anleitung beschreibt Schritt für Schritt, wie Sie die aktuelle stabile Version von Chamilo auf einem Ubuntu 18.04 LTS Server einrichten.
Systemvoraussetzungen
- Ein neu aufgesetzter Ubuntu 18.04 LTS 64-Bit Server. Für produktive Umgebungen werden mindestens 8 GB RAM empfohlen. Beispiel-IP-Adresse: 203.0.113.1.
- Ein Benutzerkonto mit sudo-Rechten.
- Das System sollte auf den neuesten stabilen Stand aktualisiert sein. Orientierung bietet die offizielle Dokumentation.
- Eine korrekt konfigurierte Domain wie chamilo.example.com, die auf die IP des Servers zeigt.
UFW-Firewall-Regeln einrichten
Für den produktiven Einsatz ist es entscheidend, die UFW-Firewall so zu konfigurieren, dass nur eingehende TCP-Verbindungen auf die Ports für SSH, HTTP und HTTPS zugelassen werden. Verwenden Sie dazu folgende Befehle:
sudo ufw allow in ssh
sudo ufw allow in http
sudo ufw allow in https
sudo ufw enable
Apache 2.4 auf Ubuntu 18.04 installieren und konfigurieren
Installieren Sie den Apache-Webserver über APT mit dem folgenden Befehl, um die neueste stabile Version unter Ubuntu 18.04 LTS zu nutzen:
sudo apt install -y apache2
Entfernen Sie anschließend die Apache-Standardstartseite, um unnötige Inhalte nicht öffentlich verfügbar zu machen:
sudo mv /var/www/html/index.html /var/www/html/index.html.old
Zur Verbesserung der Sicherheit verhindern Sie, dass Apache Dateilisten aus dem Standard-Webverzeichnis /var/www/html
anzeigt:
sudo cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf.bak
sudo sed -i "s/Options Indexes FollowSymLinks/Options FollowSymLinks/" /etc/apache2/apache2.conf
Aktivieren Sie das Apache-Modul „rewrite“, um URL-Rewrite-Funktionen zu ermöglichen, die von vielen Webanwendungen benötigt werden:
sudo a2enmod rewrite
Starten Sie den Apache-Dienst und richten Sie ihn so ein, dass er beim Systemstart automatisch geladen wird:
sudo systemctl start apache2.service
sudo systemctl enable apache2.service
MariaDB 10.3 unter Ubuntu 18.04 installieren und absichern
Beginnen Sie mit der Installation der benötigten Pakete und binden Sie das MariaDB-Repository in Ihr System ein:
sudo apt install -y software-properties-common
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
sudo add-apt-repository 'deb [arch=amd64,arm64,ppc64el] http://mirrors.accretive-networks.net/mariadb/repo/10.3/ubuntu bionic main'
sudo apt update
sudo apt install -y mariadb-server
Während der Installation werden Sie aufgefordert, ein sicheres Passwort für den MariaDB-Root-Benutzer zu vergeben. Wählen Sie ein starkes Passwort, um die Datenbanksicherheit zu gewährleisten.
Starten Sie anschließend den MariaDB-Dienst und aktivieren Sie ihn für den automatischen Start beim Systemboot:
sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service
Führen Sie nun das Sicherungsskript von MariaDB aus, um die Konfiguration weiter abzusichern:
sudo /usr/bin/mysql_secure_installation
Beantworten Sie die Fragen des Skripts wie folgt:
- Aktuelles Root-Passwort eingeben (leer lassen, wenn keines): Ihr-MariaDB-Root-Passwort
- Root-Passwort ändern? [Y/n]: n
- Anonyme Benutzer entfernen? [Y/n]: y
- Root-Zugriff über das Netzwerk verbieten? [Y/n]: y
- Testdatenbank und Zugriffe darauf entfernen? [Y/n]: y
- Privilegientabellen jetzt neu laden? [Y/n]: y
PHP 7.2 und benötigte Erweiterungen unter Ubuntu 18.04 installieren
Für die beste Kompatibilität mit Chamilo LMS empfiehlt es sich, PHP 7.2 anstelle älterer 5.x-Versionen zu verwenden. Die Installation erfolgt über ein externes PPA-Repository.
Fügen Sie zuerst das ondrej/php
PPA hinzu und aktualisieren Sie Ihre Paketliste:
sudo add-apt-repository -y ppa:ondrej/php
sudo apt update
sudo apt upgrade -y
sudo apt autoremove -y
Installieren Sie im nächsten Schritt die Kernkomponenten von PHP 7.2 sowie alle erforderlichen Erweiterungen:
sudo apt install -y php7.2 php7.2-opcache php7.2-cli php7.2-curl php7.2-common php7.2-gd php7.2-intl php7.2-mbstring php7.2-mysql libapache2-mod-php7.2 php7.2-soap php7.2-xml php7.2-xmlrpc php7.2-zip php7.2-ldap php-apcu-bc
Erstellen Sie eine Sicherung der PHP-Konfigurationsdatei für Apache und legen Sie Ihre Zeitzone fest:
sudo cp /etc/php/7.2/apache2/php.ini /etc/php/7.2/apache2/php.ini.bak
sudo sed -i 's#;date.timezone =#date.timezone = America/Los_Angeles#' /etc/php/7.2/apache2/php.ini
Hinweis: Passen Sie den Wert der Zeitzone (z. B. America/Los_Angeles
) an Ihre Region an. Eine vollständige Liste der verfügbaren Zeitzonen finden Sie online.
Chamilo LMS auf dem LAMP-Stack bereitstellen
Nachdem Ihre LAMP-Umgebung eingerichtet ist, können Sie Chamilo installieren. Dieser Vorgang umfasst das Anlegen einer separaten Datenbank in MariaDB, das Einrichten der Chamilo-Quelldateien, das Anpassen von PHP, das Erstellen eines virtuellen Hosts, die webbasierte Konfiguration sowie sicherheitsrelevante Härtungsmaßnahmen.
MariaDB-Datenbank und Benutzer anlegen
Öffnen Sie das MariaDB-Terminal mit Root-Rechten:
mysql -u root -p
Erstellen Sie im Terminal die Chamilo-Datenbank und einen Benutzer mit allen Rechten:
CREATE DATABASE chamilo;
CREATE USER 'chamilouser'@'localhost' IDENTIFIED BY 'yourpassword';
GRANT ALL PRIVILEGES ON chamilo.* TO 'chamilouser'@'localhost' IDENTIFIED BY 'yourpassword' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;
Hinweis: Ersetzen Sie chamilo
, chamilouser
und yourpassword
durch Ihre eigenen, sicheren Werte.
Chamilo LMS-Dateien herunterladen und vorbereiten
Laden Sie die aktuellste Chamilo-Version, die mit PHP 7 kompatibel ist, über GitHub herunter:
cd
wget https://github.com/chamilo/chamilo-lms/releases/download/v1.11.8/chamilo-1.11.8-php7.tar.gz
Entpacken Sie das Archiv in das Verzeichnis /opt
:
sudo tar -zxvf chamilo-1.11.8-php7.tar.gz -C /opt
Erstellen Sie einen symbolischen Link im Apache-Webverzeichnis, um zukünftige Updates zu erleichtern:
sudo ln -s /opt/chamilo-1.11.8-php7 /var/www/html/chamilo
Zum Schluss setzen Sie die Eigentumsrechte der Chamilo-Dateien auf den Standardbenutzer von Apache, um Zugriffsprobleme zu vermeiden:
sudo chown -R www-data:www-data /opt/chamilo-1.11.8-php7
PHP 7.2 und erforderliche Erweiterungen installieren
Um Chamilo LMS mit bestmöglicher Leistung zu betreiben, sollte PHP 7.2 anstelle älterer PHP-5-Versionen eingesetzt werden. Dafür kann ein externes Paketarchiv verwendet werden, um alle benötigten Komponenten zu installieren.
Fügen Sie zunächst das ondrej/php
Repository hinzu und aktualisieren Sie anschließend Ihr System:
sudo add-apt-repository -y ppa:ondrej/php
sudo apt update
sudo apt upgrade -y
sudo apt autoremove -y
Installieren Sie danach sämtliche für Chamilo erforderlichen PHP-7.2-Pakete:
sudo apt install -y php7.2 php7.2-opcache php7.2-cli php7.2-curl php7.2-common php7.2-gd php7.2-intl php7.2-mbstring php7.2-mysql libapache2-mod-php7.2 php7.2-soap php7.2-xml php7.2-xmlrpc php7.2-zip php7.2-ldap php-apcu-bc
Erstellen Sie anschließend eine Sicherung der PHP-Konfigurationsdatei für Apache und passen Sie die Zeitzone entsprechend Ihrer Region an:
sudo cp /etc/php/7.2/apache2/php.ini /etc/php/7.2/apache2/php.ini.bak
sudo sed -i 's#;date.timezone =#date.timezone = America/Los_Angeles#' /etc/php/7.2/apache2/php.ini
Hinweis: Ersetzen Sie America/Los_Angeles
durch die für Ihre Region passende Zeitzone. Eine vollständige Liste unterstützter Werte ist online verfügbar.
Chamilo-Datenbank und Benutzer einrichten
Melden Sie sich bei MariaDB an und legen Sie die Datenbank sowie einen dazugehörigen Benutzer an:
mysql -u root -p
Führen Sie im MariaDB-Terminal die folgenden Befehle aus:
CREATE DATABASE chamilo;
CREATE USER 'chamilouser'@'localhost' IDENTIFIED BY 'yourpassword';
GRANT ALL PRIVILEGES ON chamilo.* TO 'chamilouser'@'localhost' IDENTIFIED BY 'yourpassword' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;
Hinweis: Ersetzen Sie chamilo
, chamilouser
und yourpassword
durch Ihre tatsächlichen Datenbankinformationen.
Apache Virtual Host für Chamilo konfigurieren
Erstellen Sie eine eigene Apache-Konfigurationsdatei für Ihre Chamilo-Installation:
cat <
Wichtig: Ersetzen Sie example.com
durch Ihre tatsächliche Domain.
Deaktivieren Sie nun die Standardseite und aktivieren Sie Ihre neue Chamilo-Konfiguration:
sudo rm /etc/apache2/sites-enabled/000-default.conf
sudo ln -s /etc/apache2/sites-available/chamilo.conf /etc/apache2/sites-enabled/
Starten Sie Apache neu, um die Änderungen zu übernehmen:
sudo systemctl restart apache2.service
Chamilo über den Webbrowser installieren
Öffnen Sie Ihren Webbrowser und rufen Sie http://chamilo.example.com
auf. Folgen Sie dem grafischen Installationsassistenten:
- Sprache wählen: Wählen Sie Ihre bevorzugte Sprache (z. B. Deutsch) und klicken Sie auf „Weiter“.
- Systemanforderungen: Prüfen Sie, ob alle Voraussetzungen erfüllt sind, und klicken Sie auf „Neuinstallation“.
- Lizenzbedingungen: Akzeptieren Sie die GPL-Lizenz, tragen Sie Ihre Kontaktdaten ein und fahren Sie fort.
- Datenbankkonfiguration: Geben Sie Ihre Zugangsdaten zur MariaDB ein, testen Sie die Verbindung und klicken Sie auf „Weiter“.
- Grundeinstellungen: Legen Sie ein Administratorpasswort fest und füllen Sie die übrigen Felder aus.
- Abschließende Prüfung: Überprüfen Sie alle Angaben und klicken Sie auf „Chamilo installieren“.
- Fertigstellung: Klicken Sie auf „Gehe zu Ihrem neuen Portal“.
Chamilo nach der Installation absichern
Führen Sie zur Erhöhung der Sicherheit nach Abschluss der Einrichtung folgende Schritte aus:
sudo chmod -R 0555 /var/www/html/chamilo/app/config
sudo rm -rf /var/www/html/chamilo/main/install
Fazit
Mit dieser ausführlichen Anleitung haben Sie Chamilo LMS erfolgreich auf einem Ubuntu 18.04 LTS Server installiert und konfiguriert. Vom Einrichten des Apache-Webservers und dem Absichern der MariaDB-Datenbank bis hin zur PHP-Optimierung und dem Abschluss der Webinstallation wurden alle wichtigen Schritte abgedeckt.
Diese Konfiguration bietet Ihnen eine leistungsstarke, sichere und skalierbare Plattform für E-Learning. Sie sind nun bereit, Chamilo umfassend für digitale Kurse, virtuelle Klassenzimmer und kollaboratives Lernen einzusetzen.