24.3 Joomla!-Fehlerbehandlung
Lässt sich ein Konfigurationsformular nicht speichern, erscheinen nur weiße Seiten im Frontend, verlinken Menüeinträge auf 404-Fehlerseiten oder gibt Joomla! unvermittelt rote Fehlermeldungen aus, herrscht Rätselraten. Blättern Sie durch die folgenden Seiten, um ein Symptom wiederzuerkennen und die Natur des Problems und seine Lösung kennenzulernen.
Werden Sie in diesem Abschnitt nicht sofort fündig, überlegen Sie, was Sie unmittelbar vorher gemacht haben, schalten Sie die Fehlerberichterstattung auf Maximum, und durchstöbern Sie die im Eingang dieses Kapitels erwähnten Foren. Die Fehlerbehandlung von Joomla! finden Sie in der globalen Konfiguration unter System • Konfiguration • Reiter Server • Bereich Server • Feld Fehler berichten:
-
Standard: Verwendet die PHP-Standardeinstellungen (z. B. aus der Datei php.ini).
-
Keine: Vollständige Deaktivierung aller Fehlermeldungen. Verwenden Sie diese Option, wenn es keine Probleme gibt und die (Live-)Website sich im regulären Betrieb befindet.
-
Einfach: Stellt Warnungen und fatale PHP-Fehler dar.
-
Maximum, Entwicklung: Stellt Hinweise, Warnungen, Fehler und fatale Fehler dar. Verwenden Sie diese Einstellung, um Problemen auf die Schliche zu kommen. (Zwischen Maximum und Entwicklung gibt es keinen Unterschied.)
Ist Ihre Joomla!-Installation derart beschädigt, dass Sie nicht mehr in das Konfigurationsformular im Backend-Bereich kommen, öffnen Sie die Datei configuration.php im Joomla!-Installationsverzeichnis und stellen Sie den Wert der Variablen $error_reporting auf '6143' – das entspricht der Einstellung Maximum.
Tipp: Noch mehr Problemlösungen im Internet finden
In den größten Supportforen im Internet wird Englisch gesprochen. Sollten Sie einmal keine Problemlösung aufgrund der Suche nach einer deutschen Fehlermeldung finden, stellen Sie die Backend-Sprache Ihrer Joomla!-Installation kurzzeitig auf Englisch um: Erweiterungen • Sprachen • Seitenleiste Installiert - Administrator, dann in der Spalte Standard den Stern in der Zeile English (en-GB) setzen. Reproduzieren Sie jetzt den Fehler, und wiederholen Sie Ihre Internetrecherche mit der englischsprachigen Meldung.
24.3.1 White Screen of Death
Symptom
Bei kritischen PHP-Fehlern sehen Sie in der Regel leere weiße Seiten, aufgrund des Mangels jeglicher Hinweise auf die Ursache des Problems auch White Screen of Death genannt.
Erklärung
Leere weiße Seiten erscheinen, da PHP-Scripts die Webseiten zusammenstellen, bei einem Fehler diese Erstellung abbricht und es damit keine Inhalte gibt, die an den Browser zurückgesendet werden können. Der Apache Webserver erkennt das Problem und teilt dem Browser wenigstens die Fehlermeldung per HTTP-Antwort mit. 500 ist der Code, der besagt, dass die seitenerzeugende Webapplikation ein ernsthaftes Problem hat. Im Firefox mit Firebug-Add-on oder in Chromes Entwicklertools sehen Sie diese Nummer im Reiter Netzwerk, der die Client-Server-Kommunikation aufzeichnet (siehe Abbildung 24.7).
Lösung
Bearbeiten Sie die PHP-Konfigurationsdatei php.ini, und stellen Sie sicher, dass sich dort die Zeilen error_reporting=E_ALL und display_errors=On befinden. Können Sie die php.ini-Datei nicht bearbeiten, ergänzen Sie diese Konfiguration in der .htaccess-Serverkonfigurationsdatei im Installationsverzeichnis von Joomla!:
php_flag display_startup_errors on
php_flag display_errors on
php_flag html_errors on
php_flag log_errors on
php_value error_log /pfadZuIhrerJoomlaInstallation/logs/PHP_errors.log
Laden Sie jetzt die weiße Webseite neu, lesen Sie den Fehler ab, und suchen Sie im Internet nach »joomla«, gefolgt von dem Fehlertext.
24.3.2 JavaScript-Fehler
Symptom
JavaScript-Fehler erkennen Sie daran, dass einzelne Elemente der Benutzeroberfläche nicht mehr reagieren. Sie klicken z. B. auf Speichern & Schliessen, kehren aber nicht zur Manageransicht zurück.
Erklärung
Manche Bedienelemente von Joomla! und Erweiterungen sind eng an die Ausführung von JavaScript-Code gekoppelt. Sobald ein Script wegen eines Fehlers abbricht, werden nachfolgende Scripts nicht mehr ausgeführt. So führt z. B. eine jQuery-Bibliotheksinkompatibilität dazu, dass Buttons nicht mehr reagieren.
Lösung
Ermitteln Sie die genaue JavaScript-Fehlermeldung, indem Sie in den Entwicklertools des Browsers die Console aufrufen und die problembehaftete Seite mit (F5) (OS X: (cmd) + (R)) neu laden (Beispiel siehe Abbildung 24.8). Suchen Sie dann im Internet nach »joomla «, gefolgt von der problematischen Komponente und der genauen Fehlerbezeichnung.
24.3.3 Leere Fenster, fehlende Inhalte oder Menüs
Symptom
Bei Webseiten im Frontend oder Backend verrutschen Elemente, erscheinen leere Flächen und/oder sind Links oder Menüeinträge nicht erreichbar.
Erklärung
Das tritt meist nach der Installation einer Erweiterung auf, die unsauber programmiert wurde und PHP-Warnungen (Warnings) oder -Hinweise (Notices) ausgibt. Diese Nachrichten beeinflussen die HTML-Ausgabe, z. B. rutschen Inhalte nach unten, sodass sie nicht mehr im sichtbaren Content- oder Modulbereich erscheinen. Sie finden diese Meldungen in der Regel, wenn Sie in der Quelltextansicht nach »warning« oder »notice« suchen.
Lösung
Das Problem muss leider der Entwickler der Erweiterung lösen. Verifizieren Sie zunächst durch Deaktivieren und Aktivieren, dass tatsächlich die betreffende Erweiterung die Problemursache ist. Durchstöbern Sie dann die Supportforen, und kontaktieren Sie gegebenenfalls den Entwickler.
24.3.4 »404«-Fehler
Symptom
Bei Klick auf einen Menüeintrag erscheint eine 404-Fehlerseite.
Erklärung
Probleme mit 404-Seiten sind mannigfaltiger Natur. Im einfachsten Fall ist ein im Menü verlinktes Inhaltselement, z. B. ein Beitrag oder eine Kategorie, nicht veröffentlicht. Konfigurierten Sie gerade suchmaschinenfreundliche URLs, benötigt Ihr Server vielleicht eine besondere Variante der .htaccess-Serverkonfigurationsdatei. Erscheinen in der URL keine Kategorien, sondern kryptische Beitragsreferenzen, z. B. http://reiseforum.joomla-handbuch.com/index.php?id=3:kreta, sind Kategoriebezüge, vielleicht während eines Imports von Beiträgen und Kategorien, verloren gegangen.
Lösung
Prüfen Sie zunächst, dass der Status des Inhaltselements, der Kategorie oder des Menüeintrags auf Veröffentlicht steht.
Hatten Sie zuletzt Änderungen am URL-Rewrite der .htaccess-Datei vorgenommen, kam Ihr Webserver vermutlich nicht mit den für Apache-Installationen gültigen Standardeinstellungen zurecht. Konsultieren Sie dann die offizielle Joomla!-Dokumentation, die weitere Konfigurationen für Server wie IIS oder Nginx listet: http://tinyurl.com/jh-htaccess. Für einen Test, ob Ihr 404-Problem wirklich mit dem URL-Rewrite zusammenhängt, stellen Sie unter System • Konfiguration • Reiter Site • Reiter Suchmaschinenoptimierung (SEO) die beiden Schalter Suchmaschinenfreundliche URL und URL-Rewrite nutzen auf Nein.
Bei Problemen in Zusammenhang mit Kategorien klicken Sie zunächst auf den Button Wiederherstellen im Kategoriemanager. Dadurch versucht Joomla!, Inkonsistenzen im Kategoriebaum selbstständig zu reparieren. Erkennen Sie einzelne Problemkategorien, hängen Sie diese kurzzeitig unter eine andere Kategorie (z. B. Uncategorized), speichern sie und platzieren sie dann wieder an die Originalposition. Die letzte Lösung ist leider das Löschen und Neuanlegen problematischer Kategorien, achten Sie dabei darauf, den Papierkorb zwischendurch zu leeren.
24.3.5 Datum in der URL
Symptom
Die URLs einer oder mehrerer Ihrer Webseiten enthalten ein Datum, z. B. http://reiseforum.joomla-handbuch.com/urlaubsziele/2015-08-05-07-12-15/3-kreta.
Erklärung
Da ist etwas mit der automatischen Erzeugung eines Alias schiefgegangen, z. B. beim Import von Content einer anderen Joomla!-Instanz oder wenn Sie mit dem Menüeintragstyp Externe URL arbeiten.
Lösung
Prüfen Sie die Aliasse der fraglichen Kategorien, Beiträge und Menüeinträge, und vergeben Sie beim Fund leerer oder mit einem Datum befüllter Textfelder per Hand ein neues Alias.
24.3.6 Datenbankprobleme
Symptome
Symptome bei Datenbankproblemen sind schwierig zu erkennen und sehr spezifisch, z. B. anhand einer Fehlermeldung Fatal error: Call to undefined method […] get().
Erklärung
Datenbankprobleme treten in der Regel nur beim Upgrade von Joomla!- oder Erweiterungenversionen auf, wenn die Tabellen- und Felderstruktur nicht dem entspricht, was der Programmcode erwartet.
Lösung
Wechseln Sie über Erweiterungen • Verwalten zum Erweiterungsmanager • Seitenleiste Datenbank. Hier meldet Joomla! bereits eine erste Einschätzung zum Stand der Datenbank. Über den Button Reparieren versucht sich das Content-Management-System an der Fehlerbeseitigung, die dann erfolgreich verlief, wenn die Meldung Die Datenbankstruktur ist aktuell erscheint. Darüber hinaus hilft nur eine Kontaktaufnahme zum Entwickler der Erweiterung.
24.3.7 Fehlermeldung: »JUser: Fehler beim Laden des Benutzers«
Symptom
Darstellung der rot hinterlegten Fehlermeldung JUser: Fehler beim Laden des Benutzers
Erklärung
Diese Fehlermeldung erscheint u. a., wenn auf der aktuellen Webseite eine Komponente Inhalte darstellt, die einem nicht existierenden Joomla!-Benutzer zugeordnet sind. Das kann durch reguläres Löschen des Kontos geschehen sein oder durch den Import von Beiträgen einer anderen Joomla!-Instanz.
Lösung
Sehen Sie sich die Inhaltselemente der betreffenden Webseite an, und prüfen Sie im Administrations-Backend den jeweiligen Autor. Setzen Sie dann einfach einen neuen, existierenden Benutzer als Autor bzw. Besitzer des Inhaltselements ein, indem Sie den Beitrag über den Beitragsmanager bearbeiten (Reiter Veröffentlichung • Feld Autor).
24.3.8 »Warnung: Es gibt keinen Zugriff auf die privaten Seiten.«
Symptom
Darstellung der Warnmeldung Es gibt keinen Zugriff auf die privaten Seiten
Erklärung
Diese Meldung erscheint bei Unregelmäßigkeiten zwischen Benutzer und Benutzergruppen, wenn der anzumeldende Benutzer keiner Benutzergruppe zugeordnet ist. Das tritt mitunter bei einer Joomla!-Migration auf, wenn zwar Benutzer, aber keine Benutzergruppen kopiert wurden.
Lösung
Bearbeiten Sie den betreffenden Benutzer über Benutzer • Verwalten • Klick auf den Benutzernamen, und korrigieren Sie seine Benutzergruppenkonfiguration im Reiter Zugewiesene Gruppen.