24.2 Joomla!-Problemlösungen 

Während der Arbeit an Backend-Berechtigungen oder mit Komponenten, die das Rechtemanagement erweitern, kann es passieren, dass man sich als Super Benutzer aussperrt. Oder man hat nach einem ausgedehnten Urlaub schlichtweg das Passwort für den Administrationsbereich vergessen. In diesem Abschnitt erfahren Sie, wie Sie wieder Zugriff zum System erlangen und Erweiterungen deaktivieren oder deinstallieren, sollte das über reguläre Joomla!-Mechanismen nicht funktionieren.
24.2.1 Passwort des Super Benutzers zurücksetzen 

Dem Browser alle Websitepasswörter anzuvertrauen ist keine gute Idee, besonders nicht, wenn der Rechner von mehreren Personen benutzt wird. Nicht jeder verwendet einen Passwortmanager wie KeePass (http://keepass.info) oder Passpack (https://www.passpack.com), mögen diese Produkte noch so empfehlenswert sein, da man sich nur noch ein Masterpasswort merkt. So kann es mal passieren, dass man das eine oder andere Passwort vergisst. Kein Problem, denn jede Website, die mit Benutzerprofilen und -bereichen arbeitet, bietet eine Passwort-vergessen-Seite, die eine Wiederherstellung erlaubt. Als Joomla!-Webmaster ist man allerdings erst mal ausgesperrt, der Super Benutzer darf diesen Mechanismus aus Sicherheitsgründen nicht nutzen.
Um das Passwort jedes beliebigen Benutzers, auch des Super Benutzers, neu zu setzen, loggen Sie sich mit phpMyAdmin in die Datenbank Ihrer Joomla!-Installation ein.
-
Wechseln Sie in der Tabellenliste links in die Tabelle #__users, das ist die Tabelle, die alle grundsätzlichen Benutzereinstellungen enthält.
-
Finden Sie die Zeile des Super Benutzers anhand der Spalte name oder username, und klicken Sie am Zeilenanfang auf das kleine Stift-Icon (
), um den Datensatz zu bearbeiten.
-
In der Datensatzbearbeitung suchen Sie die Zeile password und wählen dort aus der Dropdown-Liste der Spalte Function den Eintrag MD5 (siehe Abbildung 24.3). Hierbei handelt es sich um den Verschlüsselungsalgorithmus, mit dem alle Passwörter codiert sind.
-
Geben Sie nun in der Spalte Value das neue Passwort in Klartext ein, und speichern Sie den Datensatz mit Klick auf den Button Go.
Werfen Sie jetzt einen Blick in die Gesamtansicht der #__users-Tabelle, erscheint beim Super-Benutzer-Eintrag statt des eingegebenen Passworts eine kryptische Zeichenfolge. phpMyAdmin hat dank der Function-Einstellung MD5 beim Datensatzspeichern das Passwort sofort verschlüsselt, nur mit auf diese Weise verschlüsselt gespeicherten Passwörter ist der Zutritt erlaubt. Nun können Sie sich wieder in Joomla! einloggen.
Abbildung 24.3 Über phpMyAdmin ändern Sie jederzeit direkt das Passwort eines beliebigen Benutzers, auch des Super Benutzers; die notwendige MD5-Verschlüsselung übernimmt phpMyAdmin anhand der »Function«-Einstellung.
24.2.2 Erweiterung per Hand deaktivieren 

Präsentiert das Front- und/oder Backend Ihrer Website unmittelbar nach Installation und Aktivierung einer Erweiterung weiße Seiten, verrutschte Layouts oder gar Fehlermeldungen, deaktivieren Sie diese Erweiterung sofort und halten im JED nach einer Alternative Ausschau. Lässt sich im Backend von Joomla! allerdings nicht mehr bedienen, ist eine händische Deaktivierung über die Datenbank angesagt.
-
Rufen Sie phpMyAdmin mit der Datenbank auf, die die Inhalte Ihrer Joomla!-Installation enthält.
-
Lokalisieren und öffnen Sie die Tabelle #__extensions, und suchen Sie die Zeile, die auf die neue Erweiterung verweist. Bei umfangreichen Komponenten können das auch mehrere Einträge sein. Blättern Sie gegebenenfalls über die Pfeil-Buttons zu den Folgeseiten, falls die Liste besonders lang ist.
Tipp: Sortieren Sie die Tabelle über die Spalte extension_id, indem Sie zweimal auf die Spaltenüberschrift klicken, sodass die höchsten IDs oben erscheinen. Zuletzt installierte Erweiterungen besitzen die höchsten IDs, da die Zahl mit jeder Installation hochzählt.
-
Klicken Sie doppelt in die Spalte enabled, und ändern Sie die 1 zu »0« (siehe Abbildung 24.4); das hat denselben Effekt, als klickten Sie im Backend zur Deaktivierung in die Spalte Status.
Abbildung 24.4 Zur Deaktivierung einer beliebigen Erweiterung ändern Sie im entsprechenden Eintrag den Wert »1« in der Spalte »enabled« auf »0«.
-
Prüfen Sie im Front- bzw. Backend, ob die Site wieder funktionsfähig ist. Falls nicht, hat die Erweiterung vielleicht zusätzliche Komponenten oder Bibliotheken installiert. Denen kommen Sie auf die Schliche, indem Sie das ZIP-Paket der Erweiterung über Ihren Dateimanager öffnen und nachsehen, welche Plugins, Module, Komponenten etc. darin enthalten sind. Vergessen Sie nach ihrer Deaktivierung übrigens nicht, die Erweiterung im Backend von Joomla! über Erweiterungen • Verwalten • Seitenleiste Verwalten zu deinstallieren.
24.2.3 Erweiterung per Hand entfernen 

Manch eine Erweiterung wurde von ihrem Entwickler vielleicht so hastig veröffentlicht, dass sogar die Deinstallation mit Fehlern gespickt ist und Joomla! nicht so recht weiß, wie alle Bestandteile zu entfernen sind. In so einem Fall sind Sie als Webmaster gefragt und räumen die Datenbank und das Dateisystem selbst auf.
Achtung: Manuelles Löschen von Dateien und Datensätzen birgt das Risiko, dass Sie versehentlich Elemente anderer Komponenten entfernen. Legen Sie deshalb vor der Löschaktion ein Backup an. Noch besser: Legen Sie vor jeder Erweiterungsinstallation ein Backup an, um bei Fehlern auf diesen Stand zurückzurollen.
Bevor Sie eine Erweiterung per Hand entfernen, versuchen Sie die Deinstallation über Erweiterungen • Verwalten • Seitenleiste Verwalten • Häkchenmarkierung der Erweiterung • Button Deinstallieren. Die vollständige Entfernung mag fehlschlagen, aber Joomla! leistet auf diese Weise etwas Vorarbeit.
Dateisystem bereinigen
Erweiterungen haben in Joomla! einen eindeutigen Namen, der in Verzeichnissen und Dateinamen vorkommt, die in irgendeiner Weise mit dem Plugin, dem Modul oder der Komponente zu tun haben. Das Schema ist plg_erweiterungsname, mod_erweiterungsname bzw. com_erweiterungsname. Kennen Sie diesen Namen, ist es einfach, über eine Dateisystemsuche alle betroffenen Dateien und Verzeichnisse zu lokalisieren und zu löschen (siehe Abbildung 24.5 und Abbildung 24.6).
Abbildung 24.5 Nach Eingabe des programminternen Erweiterungsnamens listen Dateimanager wie der Explorer alle Verzeichnisse und Dateien, die mit der Erweiterung in Verbindung stehen.
Abbildung 24.6 In FileZilla erreichen Sie die Verzeichnis- und Dateisuche über das Menü »Server« • »Dateisuche auf Server…«, das Auffinden dauert allerdings einige Minuten; zum Löschen benutzen Sie das Kontextmenü.
Üblicherweise finden Sie den Namen als Bestandteil des vom Joomla! Extensions Directory heruntergeladenen ZIP-Archivs. Oder, falls es sich um ein Paket aus mehreren Komponenten handelt, anhand der im Paket-ZIP-Archiv enthaltenen Unter-ZIP-Archive. Auch ein Blick in den Erweiterungsmanager von Joomla! gibt über die Spalten Datei bzw. Verzeichnis Aufschluss über den programminternen Namen, hier allerdings ohne Kennzeichnung des Erweiterungstyps. Mit dieser Information bewaffnet, lassen Sie sich alle betreffenden Dateien und Verzeichnisse über Ihren Dateimanager oder FTP-Client listen, um sie dann zu löschen.
Trauen Sie der Suche nicht über den Weg und möchten sich selbst einen Überblick über die Verteilung der Dateien verschaffen, klicken Sie sich durch den Verzeichnisbaum von Joomla!. Üblicherweise finden Sie Dateien von Erweiterungen in diesen Verzeichnissen:
-
/components/
-
/modules/
-
/plugins/
-
/language/ (möglicherweise in allen Sprachunterverzeichnissen, mindestens unter /language/en-GB/)
-
/media/
-
/administrator/components/
-
/administrator/modules/
-
/administrator/language/ (möglicherweise in allen Sprachunterverzeichnissen, mindestens unter /administrator/language/en-GB/)
Datenbank aufräumen
Wurden alle verdächtigen Dateien entfernt, folgt der zweite Teil der Bereinigung. Beim Aufräumen der Datenbank suchen und löschen Sie Tabellen und Einträge, die in irgendeiner Form mit der zu entfernenden Erweiterung zu tun haben.
-
Alle Tabellen, die die Erweiterung erzeugt hat
Diese Tabellen erkennen Sie üblicherweise an der Nennung des internen Erweiterungsnamens, unmittelbar nach dem Tabellenpräfix; ebenfalls ohne Kürzel des Erweiterungstyps, gefolgt von einer Bezeichnung für den Einsatz der Tabelle, z. B. #__csvi_template_fields oder #__jhimagepopup_popups. Seien Sie beim Löschen nicht zögerlich. Einige Erweiterungen installieren bis zu zwei Dutzend zusätzliche Tabellen, die Shop-Plattform VirtueMart kommt sogar auf fast 80 Tabellen.Löschen Sie aber auf keinen Fall nachfolgende interne Tabellen: #__assets, #__associations, #__categories, #__content, #__core, #__extensions, #__finder, #__languages, #__menu, #__messages, #__modules, #__overrides, #__postinstall, #__session, #__template, #__update, #__usergroups, #__user und #__viewlevels.
-
Einzelne Datensätze, die die Erweiterung in Joomla! registrieren
-
#__extensions: Diese Tabelle ist die zentrale Liste von Joomla! zur Erweiterungenverwaltung. Notieren Sie sich die ID der gelöschten Erweiterung.
-
#__assets: Berechtigungskonfigurationen aller Komponenten. Die zu löschenden Kandidaten finden Sie über die Spalte name.
-
#__menu: Menüeinträge – orientieren Sie sich am Inhalt der Spalte title.
-
#__schemas: Hilfstabelle, um Änderungen an den Erweiterungstabellen nachzuvollziehen. Löschen Sie alle Einträge, die die eben notierte Erweiterungs-ID in der Spalte extension_id enthalten.
-