Joomla! 1.5-Installation auf Version 2.5 aktualisieren

21. Mai 2012 · Anwendungen · andreas · 5 Kommentare

Wie im Joomla! Developer Network zu lesen hat Joomla! 1.5 Ende April 2012 sein End-of-Life erreicht, Sicherheitsupdates werden voraussichtlich noch bis zum Erscheinen der Version 3.0 im September 2012 angeboten - höchste Zeit also, über einen Wechsel auf eine neuere Joomla!-Version nachzudenken.

Joomla! 1.5.26
End of Support:
April 2012.
Note:
Major security fixes will be done until release of 3.0 in September 2012.

Wie der offizielle “Upgrading and Migrating Joomla"-Leitfaden beschreibt, ist es mit einem einfachen Update nicht getan, der Wechsel erfordert eine vollständige Migration der vorhandenen Daten. Als Zielversion bietet sich aktuell nur die Version 2.5 an, denn die Versionen 1.6 und 1.7 haben im August 2011 bzw. Februar 2012 ebenfalls bereits ihr End-of-Life erreicht.

Als grober Wegweiser durch die Migration steht das Dokument “Migrating from Joomla 1.5 to Joomla 2.5” zur Verfügung, welches einmal die Migration mittels der Komponente jUpgrade als auch die notwendigen Schritte für eine Migration von Hand beschreibt.

Vor allem letzteres sollte nach Möglichkeit vermieden werden, denn

Convert the table schemas in the .sql file you exported in step 2 (containing your Joomla 1.5 tables) such that they are compatible with the version of Joomla! you are upgrading to. This is a very tedious process - you’ll have to check the database schemas for changes between the version of Joomla you’re upgrading from and the 2.5 version you’re upgrading to, and modify the SQL file accordingly.

das manuelle Ändern der Tabellenstrukturen dürfte sich langwierig und frustrierend gestalten.

Für einen ersten Migrationsversuch, wurde eine sehr kleine Website ausgewählt, die mit einem Benutzer, keinen selbstdefinierten Bereichen und Kategorien, neun Beiträgen sowie ausschließlicher Verwendung von Core-Komponenten einer Minimal-Installation von Joomla! sehr nahe kommt.

Sicherung der bestehenden Installation

Als erster und wichtigster Schritt sollte die bestehende Joomla!-Installation komplett gesichert werden, um im Fall der Fälle wieder auf eine funtionierende und saubere Basis zurückkehren zu können. Hierzu gehört neben einer Sicherung der Datenbank auch eien Sicherung des Dateisystems.

Ebenfalls kann es nicht schaden, nach der Durchführung einzelner Migrationsschritte Zwischensicherungen anzulegen, um gegebenenfalls einen Migrationsschritt wiederholen zu können.

Versionsprüfung und Update der vorhandenen Jooma!-Installation

jUpgrade benötigt mindestens eine Joomla!-Installation in der Version 1.5.19, aber alleine schon aus Sicherheitsgründen sollte auch für einen Weiterbetrieb der 1.5’er-Schiene die Installation möglichst aktuell gehalten werden.

Hierzu können die entsprechenden Delta-Pakete direkt heruntergeladen und in die bestehende Joomla!-Installation entpackt werden. Eine Dokumentation zum Durchführen des Updates findet sich unter “Upgrading 1.5 from an existing 1.5x version

Überprüfung der installierten Erweiterungen

jUpgrade unterstützt bei der Migration nur einen kleinen Teil an sogeannten 3rd Party-Erweiterungen. Um einen möglichst reibungslosen Umstieg zu gewährleisten, sollte im Voraus bereits geprüft werden, ob alle benötigten Erweiterungen auch für Joomla! 2.5 vorliegen oder ggf. das Joomla! Extension-Directory nach passendem Ersatz durchforstet werden.

Aufräumen der alten Installation

Vor dem Start der Migration bietet es sich an, die alte Installation auf Karteileichen zu untersuchen - sowohl bei den Benutzern als auch bei Bereichen, Kategorien, Beiträgen, Templates und Erweiterungen. Alles, was nicht (mehr) vorhanden ist, kann bei der Migration auch nicht zu Problemen führen.

Herunterladen und Installieren von jUpgrade

Nach einer Zwangsregistirierung beim Hersteller kann jUpgrade heruntergeladen und über das Joomla!-Backend installiert werden.

Nach erfolgreicher Installation muß - falls noch nicht geschehen - zunächst das “System - Mootools Upgrade”-Plugin unter “Erweiterungen” / “Plugins” aktiviert werden, welches von jUpgrade zwingend benötigt wird.

jUpgrade

jUpgrade selbst wird durch Klick auf “Komponenten” / “jUpgrade” aufgerufen, doch vor dem Klick auf “Upgrade starten” sollte noch ein Blick in die “Einstellungen” der Komponente geworfen werden.

Neben dem bedarfsweisen Abschalten des automatischen Downloads und Enpackens (s.u.) sollten die Optionen “Skip templates copy” sowie “Skip 3rd party extensions” aktiviert werden, da für diese Elemente sowieso keine Migration sondern lediglich eine einfache-Kopie vorgenommen wird.

Anschließend kann die Migration gestartet werden.

Idealerweise sollten die einzelnen Schritte fehlerfrei durchlaufen und zum Abschluß “Joomla 2.5 Upgrade Finished!” vermeldet werden. Falls nicht, lohnt es in den Einstellungen die Option “Enable migration debug” auf “Ja” zu setzen und sich auf die Suche nach Fehlerquellen zu machen.

Im aktuellen Fall waren nach dem Versuch sowohl die Benutzer als auch die Kategorien und Beiträge komplett übernommen, so daß zumindest eine brauchbare Ausgangsbasis für manuelle Nacharbeiten vorhanden war.

Anpassen des Templates

Zum aktuellen Zeipunkt können die Template-Dateien durch jUpgrade zwar kopiert werden, es erfolgt aber keinerlei automatisierte Anpassung. Deshalb empfiehlt es sich, zuerst ein paar grundlegende Anpassungen am bestehenden Template vorzunehmen, das bereits angepasste Template über den Erweiterungsmanager in die migrierte Version zu installieren und hinterher die Detailanpassungen vorzunehmen.

Damit das Template überhaupt angezeigt wird und für die Gestaltung der Site ausgewählt werden kann, müssen zuerst ein paar Modifikationen an der Datei “templateDetails.xml” vorgenommen werden.

Als erstes ist der Doctype

<!DOCTYPE install PUBLIC "-//Joomla! 2.5//DTD template 1.0//EN" "http://www.joomla.org/xml/dtd/1.6/template-install.dtd">

nach der XML-Definition einzufügen sowie die Änderung des bisherigen XML-Tags “install” zu “extension” durchzuführen.

Darüber hinaus sollte die Version auf mindestens 1.7 angehoben sowie auch der Anzeigebereich (“client” / “administrator”) definiert werden:

<extension version="2.5" type="template" client="site">

Idealerweise wird nach Installation und Auswählen des Templates die Website dann zumindest in Grundzügen wieder richtig dargestellt.

Was ansonsten noch an Anpassungen zu tun ist, hängt vom jeweiligen verwendeten Template ab, eine Übersicht der möglichen Baustellen findet sich im Artikel “Upgrading a Joomla 1.5 template to Joomla 1.6

Nur auf den ersten Blick hilfreich erscheint der Hinweis bezüglich eventueller Layout Overrides im Bezug auf “com_content” erwiesen. Das Hinzufügen des vorgeschlagenen

JHtml::addIncludePath( JPATH_COMPONENT . '/helpers' );

löst zwar den zu einem “500 - JHtml: :icon not supported. File not found.” führenden Fehler, führt aber u.U. zu jeder Menge “Notice: Undefined property: ContentViewArticle::$article” bzw. “Notice: Trying to get property of non-object”-Meldungen.
Des Rätsels Lösung liegt in der Umbenennung von “$this->article” in “$this->item”, was sich glücklicherweise mit einer Runde “Search & Replace” lösen lässt. Die analogen Meldungen bezüglich “$this->access” lassen sich zumindest bei den Druck- und E-Mail-Icons durch Entfernen des fehlerverursachenden Aufrufs lösen.

Der sinnvollere und wahrscheinlich schnellere Weg liegt aber wohl darin, die Content-Overwrites auf Basis der in Version 2.5 mitgelieferten Templates neu zu erstellen statt zu versuchen, die alten Overrides zu modifizieren.

Stolpersteine

jUpgrade erweist sich in seiner Arbeit leider als nicht sehr fehlertolerant:

Schlägt zum Beispiel der Download der neuen Joomla!-Version fehl, so versucht es trotzdem die 0 Byte große Datei zu entpacken nur um dann anschließend die Arbeit kommentarlos einzustellen. Um den fehlerhaften Download zu umgehen, kann die Installations-version (z.B. “Joomla_2.5.4-Stable-Full_Package.zip”) auch manuell heruntergeladen und in das Verzeichnis “jupgrade” im Hauptordner der Joomla!-Installation entpackt werden. Vor einem erneuten Start sind in den Einstellungen sowohl die Option “Download überspringen” also auch die Option “Auspacken überspringen” auf “Ja” zu setzen.

Neben dem PHP-Modul “curl” wird auch das PHP-Modul “mysqli” zwingend benötigt, sonst kommt es zu einem “JLIB_DATABASE_ERROR_CONNECT_DATABASE”. Alternativ hierzu kann in der Datei “install_config.php” im Verzeichnis “administrator/components/com_jupgrade/includes” der Eintrag

$jconfig->db_type = 'mysqli';

auf

$jconfig->db_type = 'mysql';

geändert werden, wie im offiziellen jUpgrade-Forum nachzulesen ist.