Hätte ich nicht schon wieder zwei Abende damit zugebracht, die Ursache für einen Fehler bei einem Joomla-Update zu suchen, würde ich es ja unter der Kategorie „Running Gag“ verbuchen, dass die Joomla-Entwickler jedes Mal auf’s Neue sich in der Kreativität ihrer Bugs übertreffen. War es beim einem Komponenten-Update noch das Unvermögen konsistente Datenstände zu halten, so ist es in Sachen Software-Update die Abwärtskompatibilität zu seinen eigenen, früheren Versionen.
Alles fing damit an, dass eine Joomla-Installation für einen Bekannten zu aktualisieren war. An sich auch kein großes Ding, da die für das Update nötigen Änderungen bereits einmal vor längerer Zeit zusammengesucht wurden und daher das Datenbank-Update wie erwartet binnen 10 Minuten abgeschlossen war. Deutlich länger dauerte da schon, ein Backup der Seite zu ziehen, bzw. die aktualisierten Dateien hochzuladen. Dass dabei der Upload auf den Server entgegen üblicher Netzverbindungen im Upload fast doppelt so schnell ging, wie dessen Download, sei hier nur m Rande erwähnt.
Jedenfalls, laufen wollte die Seite nicht. Das übliche halt: Man muss erst umständlich mit einem FTP-Client den Cache leeren, sich im Backend abmelden, den Cache erneut anmelden und abermals den Cache leeren, um nach einem erneuten Login im Backend arbeiten zu können. Ohne diese Umstände sieht man zwar ein wunderschönes Joomla-Backend; leider jedoch ohne irgendwelche Menüs oder anderen Luxus wie Schaltflächen, die ja eh keiner brauch. Aber da ich dieses Rumgehacke bei Joomla schon kenne, war auch das keine wirkliche Herausforderung.
Dann schon eher, dass einige der Seiten im Frontend einfach nur ein „Beitrag nicht gefunden“, oder gar ein „Kategorie nicht gefunden“ lieferten. Also einen kurzen Blick in die üblichen verdächtigen Stellen in der Datenbank und prompt auch gleich eine Datenbank-Inkonsistenz gefunden: In der Tabelle jos_menu gibt es zwei Spalten lft und rgt, die zur schnelleren Suche in der Baumstruktur der Menüeinträge verwendet werden. Alle in diesen Spalten eingetragenen Werte müssen eindeutig sein (auf beide Spalten gesehen) und dürfen sich nicht überkreuzen; lediglich das Überlappen (d.h. Eintrag 1 hat lft kleiner lft von Eintrag zwei und rgt von Eintrag 1 ist größer als das von Eintrag 2) ist zulässig. Nunja, war fehlerhaft, kurz korrigiert, aber laufen wollte es immer noch nicht.
Also erneut geschaut, keine weiteren Inkonsistenzen gesehen und daher mit dem Printf-Debugging das Routing-System von Joomla auseinander genommen. Ohne Erfolg. Denn die von Joomla generierten Links waren allesamt korrekt. Wäre auch zu einfach gewesen. Somit kurz einen Test gemacht: Mir war aufgefallen, dass einige der Aliasnamen Großbuchstaben enthielten und diese beim Speichern in Kleinbuchstaben umgewandelt wurden. Und siehe da: Sobald die Aliase eines Eintrags nur noch Kleinbuchstaben enthielten (oder Ziffern), funktionierte es auch mit dem Finden des (seit Anfang an enthaltenen) Contents. Joomla!
Hat man also früher in Joomla! einen Alias angeben können, der aus Groß- und Kleinbuchstaben besteht, so hat man seit einer der Stable-Versionen zwischen 1.6.0 Beta 7 und 1.6.6 genau diese Möglichkeit nicht mehr. An sich auch kein Thema, wenn Joomla zumindest so nett wäre, genau diese Änderung entweder automatisch beim Auflösen der URLs von sich aus umzusetzen ODER n prominenter Stelle im Backend darauf hinzuweisen, dass im aktuellen Menü einige Links enthalten sind, deren zugeordneter Content nicht auffindbar ist.
Nunja, was soll man da sagen: Es ist halt Joomla!
Hallo!
Habe grade mit Interesse Deinen Beitrag gelesen, denn bei mir ist genau das schon 2 x passiert: Backend ohne Schaltflächen.
Leider verstehe ich nicht ganz, wie Dui es wieder hinbekommen hast:
„Man muss erst umständlich mit einem FTP-Client den Cache leeren, sich im Backend abmelden, den Cache erneut anmelden und abermals den Cache leeren, um nach einem erneuten Login im Backend arbeiten zu können. “
Wie mache ich das? Bislang konnte mir niemand helfen…
Merci vielmals!
Kommentar by Bella — 09.05.2012 @ 17:01:24
Wenn man in einem FTP-Client seine Joomla-Installation öffnet, dann finden sich dort im Hauptverzeichnis und im Unterverzeichnis administrator jeweils ein Verzeichnis cache. Den Inhalt dieser beiden Verzeichnisse muss man (außer der dort liegenden index.html) löschen.
Anschließend sollte man im Browser noch für die eigene Seite die Cookies löschen, um eine bestehende Session zu beenden. Abschließend alle vorhandenen Fenster der Seite/des Administrators schließen und erneut öffnen, so dass er im Administrationsinterface erneut nach einem Login fragt. Danach sollte das Admin-Interface wieder normal erreichbar sein.
Kommentar by BenBE — 13.05.2012 @ 17:13:20
Hallo!
Habe ich probiert, aber leider hilft es nicht, da in den Verzeichnissen jeweils nur die index.html liegt. Cache ist gar nicht aktiviert….
Woran kann es liegen?
Kommentar by Bella — 05.06.2012 @ 23:25:44