2.3 Datenbank einrichten
Joomla! speichert sämtliche Textinhalte und Konfigurationen in einer Datenbank. Unterstützte Datenbanksysteme sind Microsoft SQL Server, PostgreSQL und das im XAMPP-Paket enthaltene MySQL.
Für die bevorstehende Joomla!-Installation erzeugen Sie eine Datenbank. Die MySQL-Komponente bietet nur Kommandozeilenbefehle und ein eigenes Command Line Interface (CLI). Dort lassen sich zwar alle Datenbankoperationen per SQL durchführen, besonders komfortabel ist das aber nicht. Hier ist XAMPP wieder Retter in der Not, denn die De-facto-Standardbenutzeroberfläche phpMyAdmin ist bereits als eigene Webapplikation vorinstalliert.
-
Starten Sie Ihren lokalen phpMyAdmin im Browser über die Adresse http://localhost/phpmyadmin.
-
Wählen Sie den Reiter Datenbanken.
-
Vergeben Sie unter Neue Datenbank anlegen • Datenbankname einen sinnvollen Namen, z. B. »joomla3test«.
-
Stellen Sie, wie in Abbildung 2.24 dargestellt, das Dropdown-Menü Kollation auf utf8_general_ci. Diese Zeichensatzeinstellung vermeidet später potenzielle Probleme mit Sonderzeichen im Content.
-
Klicken Sie auf Anlegen.
Die Datenbank joomla3test ist nun angelegt und erscheint in der Datenbankübersicht auf der linken Seite des Fensters.
In einem Live-System würden Sie noch Benutzer und Passwörter anlegen, um den Zugriff auf die Datenbank einzuschränken und so deutlich sicherer zu gestalten. Beispielsweise ist es nicht notwendig, dass das Konto, das Joomla! benutzt, um Textinhalte zu schreiben und zu lesen, auch Datenbanken löschen darf. Würde jemand Kontrolle über das Datenbankzugriffssystem in Joomla! erlangen, käme er dann an den wertvollen Content und könnte im schlimmsten Fall alles löschen.
Für die lokale Testumgebung machen Sie sich aber keine Sorgen. Zum einen ist die Datenbank nicht von außen zu erreichen. (Das sollte auch niemals so eingestellt werden, da das Standardpasswort für den Datenbankadministrator leer ist.) Zum anderen läuft die Joomla!-Installation ebenfalls nur lokal und wäre erst nach Portfreigaben am Netzwerkrouter erreichbar. Für die Entwicklungs-/Testumgebung sind die lapidaren Standard-XAMPP-Sicherheitseinstellungen ausreichend.
Möchten Sie einen Schritt weitergehen und dieses Sicherheitsrisiko vermeiden, lesen Sie im folgenden Abschnitt, wie Sie das Problem mit der unsicheren Datenbankverbindung in den Griff bekommen. Danach geht’s in Abschnitt 2.4 endlich zur eigentlichen Joomla!-Installation.
Optional: Datenbankzugriff mit neuem Konto absichern
In der Standard-XAMPP-Konfiguration erfolgt der Datenbankzugriff über das Administratorkonto root, dem kein Passwort zugewiesen ist. Das ist Absicht, denn XAMPP ist darauf ausgelegt, vornehmlich in lokalen Umgebungen eingesetzt zu werden. Und zwar so schnell und unkompliziert wie möglich. Diese Seiten greifen daher ein Thema auf, das erst in Kapitel 3, »Live-Umgebung einrichten«, kritisch ist: Wie werden Datenbankverbindungen in einer Live-Umgebung behandelt?
Dieses Sicherheitsleck stopfen Sie durch Anlegen eines eingeschränkten Benutzers per phpMyAdmin und Angabe dieses Benutzers in der Joomla!-Konfiguration. Schon allein die Anlage eines Benutzers mit anderem Namen erhöht die Sicherheit ungemein, da etwaige Brute-Force-Angriffe, bei denen Hunderttausende von Passwörtern für bekannte Benutzernamen (root) ausprobiert werden, fehlschlagen.
-
Öffnen Sie im Browser die phpMyAdmin-Oberfläche unter der Adresse http://localhost/phpmyadmin.
-
Wählen Sie links die Datenbank jooml3test und danach den Reiter Rechte in der Mitte der oberen Fensterkante.
-
Klicken Sie im Kasten Neu auf den Link Benutzer hinzufügen.
-
Nun erscheint ein recht umfangreiches Formular (siehe Abbildung 2.25), in dem der Benutzername, sein Passwort und die notwendigsten Rechte festgelegt werden.
-
Benutzername: Vergeben Sie einen beliebigen Benutzernamen, am besten einen ungewöhnlichen, vermeiden Sie also z. B. »joomla«.
-
Host: Wählen Sie aus der Dropdown-Liste lokal, oder geben Sie in das Textfeld dahinter »localhost« ein.
-
Passwort/Wiederholen: Erfinden Sie ein sicheres Passwort, siehe auch Abschnitt 22.4, »Starke Passwörter einsetzen«.
-
Passwort generieren: Statt ein Passwort zu erfinden, können Sie auch eines zufällig erzeugen lassen.
-
Datenbank für Benutzer: Belassen Sie das Häkchen bei der Option Gewähre alle Rechte auf die Datenbank "joomla3test".
-
Globale Rechte: Setzen Sie Häkchen () an folgende Optionen im linken Kasten: SELECT, INSERT, DELETE, UPDATE. Damit ist dieser Benutzer ausschließlich berechtigt, Inhalte zu schreiben, zu verändern und zu löschen, nicht aber, globale Änderungen am Datenbanksystem durchzuführen.
-
-
Nach einem Klick auf OK rechts unterhalb des Formulars steht der neue Benutzer bereit.
Achtung: Mit diesen Rechten kann nur Content gepflegt werden
Die jetzt stark eingeschränkten Rechte des Joomla!-Benutzers sichern das Datenbanksystem gegen alle von etwaigen Joomla!-Komponenten ausgehenden Manipulationen der Datenbank ab. Dieser Benutzer darf nur an Inhalten arbeiten – eine ideale Konfiguration für ein Produktionssystem, in dem jedes Konto nur das ausführen darf, was es zur Bewältigung seiner Aufgaben benötigt. In diesem Fall zählt Contentpflege zum Tagesgeschäft, da davon auszugehen ist, dass das Joomla!-System mit all seinen Komponenten und Erweiterungen fertig eingerichtet ist.
Falls Sie die Rechte dieses Benutzers aber doch mal ausweiten müssen, um z. B. Updates durchzuführen oder eine neue Erweiterung zu installieren, sind das nur ein paar Klicks in phpMyAdmin:
-
Wechseln Sie in der Liste auf der linken Seite zur fraglichen Datenbank.
-
Navigieren Sie zum Reiter Rechte (obere Fensterkante, etwa in der Mitte).
-
Suchen Sie die Zeile mit dem fraglichen Benutzer, und klicken Sie ganz rechts auf den Link Rechte ändern.
-
Nun genügt ein Häkchen bei Globale Rechte: Alle auswählen. Speichern Sie die neuen Benutzerrechte über den Button OK rechts unten.
Über dasselbe Konfigurationsfenster lassen sich diese Rechte wieder auf SELECT, INSERT, DELETE, UPDATE zurücksetzen, nachdem die Wartungsarbeiten abgeschlossen sind.
Hinweis: Alternativ legen Sie einen zweiten Administrationsbenutzer an, der über alle Rechte verfügt. Die Umschaltung zwischen den Benutzern nehmen Sie dann in der Joomla!-Konfiguration configuration.php vor.
Um den eben angelegten Datenbankbenutzer in Joomla! einzustellen, genügt das Administrations-Backend leider nicht. Sie müssen per Hand an die Hauptkonfiguration. Öffnen Sie die Datei configuration.php aus dem Joomla!-Hauptverzeichnis in einem Texteditor, und suchen Sie diese Zeilen:
public $dbtype = 'mysqli';
public $host = 'localhost';
public $user = 'root';
public $password = '';
public $db = 'joomla3test';
Tragen Sie jetzt hier für $user und $passwort die Login-Daten des eben angelegten MySQL-Benutzers ein. Speichern Sie die Datei, und aktualisieren Sie eine beliebige Joomla!-Seite im Browser, um die Gültigkeit des Logins zu prüfen.
Erscheint eine größtenteils leere Webseite mit der Fehlermeldung Error displaying the error page: Application Instantiation Error: Could not connect to MySQL, liegt wahrscheinlich ein Tippfehler vor; entweder in der configuration.php oder beim Anlegen des Benutzers. Zwischenablagen sind manchmal etwas widerspenstig. Wiederholen Sie dann einfach das Neuanlegen und Konfigurieren, bis die Datenbankverbindung steht.
Noch ein Tipp: Um einen Datenbankbenutzer zu löschen, klicken Sie auf das kleine -Icon unter dem phpMyAdmin-Logo, sodass rechts oben der Reiter Benutzer erscheint. In diesem Fenster lassen sich Benutzernamen markieren und im Kasten Die ausgewählten Benutzer löschen • OK entfernen.