TYPO3-Upgrades von LTS-Versionen - Schritt für Schritt erklärt

Bei unseren TYPO3-Projekten stehen wir regelmäßig vor der Aufgabe, TYPO3-Instanzen auf die aktuelle LTS-Version (Long Term Support) zu aktualisieren. Was sich für Außenstehende nach ein paar Handgriffen und wenigen Klicks anhört, ist in Wirklichkeit ein recht aufwendiges Unterfangen. Wie auch bei anderen CMS-Systemen bedeuten Sprünge in der Versionsnummer vor dem Punkt meist große Veränderungen im System. Hier berichten wir aus unseren Erfahrungen mit den Versionsupdates, erläutern Best Practices und zeigen typische Stolpersteine auf.

TYPO3-Upgrades von LTS-Versionen - Schritt für Schritt erklärt
Foto: 
geralt (Pixabay)

Leider gibt es keine allgemeingültige Blaupause für solche LTS-Versionsupdates, weil jedes TYPO3-Projekt individuelle Spezifika, Konfigurationen (TypoScript und TSConfig) sowie Erweiterungen hat.

Wurde eine TYPO3-Instanz zudem über einen längeren Zeitraum nicht aktualisiert, ist es ungleich zeitaufwändiger und anspruchsvoller, sie auf die aktuelle LTS-Version zu heben. Die Aktualisierung erfolgt dann in mehreren Teilschritten auf die jeweils nächste Versionsnummer. Hierzu bietet unser Erfahrungsbericht zum TYPO3-Update von v7 auf v10 interessante Einblicke.

Warum man TYPO3 regelmäßig upgraden sollte

TYPO3 ist ein weit verbreitetes Open Source Content Management System, das regelmäßig aktualisiert werden sollte. Die Hauptgründe dafür sind:

  • Aktuelle TYPO3-Versionen bieten stets viele neue Funktionen und einen höheren Benutzerkomfort im Backend.
  • Jede TYPO3-LTS-Version bringt erhebliche Code-Verbesserungen im Core, welche die Software sicherer, funktionsreicher und schneller machen.
  • TYPO3 reagiert auf aktuelle Anforderungen des Marktes und kümmert sich um Dinge, die wichtig sind und werden - z.B. Page Speed.
  • Der Einsatz veralteter TYPO3-Versionen erhöht das Risiko, dass Sicherheitslücken ausgenutzt werden, die in der aktuellen Version schon behoben sind.
  • Nur mit einem aktuellen TYPO3 betreibt man eine sichere und dem "Stand der Technik" entsprechende Software.
  • Je länger man TYPO3 nicht aktualisiert, um so schwieriger wird das Upgrade auf die jeweils aktuelle Version.

Wann man das TYPO3-LTS-Upgrade durchführen sollte

Bei TYPO3 sind Release-Daten und Support-Zyklen der wichtigen LTS-Versionen ("Long Term Support") vorher terminiert und bekannt. Die Zeiträume sind verlässlich, weil die Erscheinungstermine von TYPO3-Versionen Jahre im voraus geplant werden. Sie sind in der TYPO3-Roadmap festgeschrieben. Für die LTS-Versionen gibt es ab Veröffentlichung drei Jahre garantierte Sicherheitsupdates. Für die beliebte TYPO3-Version 9 endete der Support für die LTS-Version im September 2021. Das kostenpflichtige Programm TYPO3 ELTS (Extended Long Term Support) der TYPO3 GmbH verlängert den Support-Zeitraum einer LTS-Version um weitere 3 Jahre.

Wir empfehlen nicht, innerhalb der ersten sechs Monate auf die jeweils neue Long Term Support Version nach deren Erscheinung umzusteigen, da es aus der Erfahrung immer wieder zu erheblichen Nachbesserungen in dieser Zeit kommt.

TYPO3-Versionen LTS- und ELTS-Support

Wie man bei einem TYPO3 LTS-Upgrade vorgeht

Projekt-Setup

Upgrades von TYPO3 sollte man niemals direkt auf der Live-Instanz ausführen. Es kann immer zu Fehlern und Komplikationen kommen, die den Live-Betrieb der Website empfindlich stören können. Bei unseren Projekten werden alle TYPO3-Bestandteile in einem oder mehreren Git-Repositories gepflegt und automatisch mittels Container-Technologie auf die kundenspezifischen Zielsysteme deployed. Als Konfigurationsmanagement-Sprache kommt Ansible zum Einsatz. So arbeiten wir auf lokalen Entwicklungs-Umgebungen und veröffentlichen alle Änderungen automatisiert auf Test- und schließlich Live-Server.

Wer nicht über eine solches Setup mit entsprechender Deployment-Kette verfügt, sollte zumindest die Live-Instanz von TYPO3 klonen, das Upgrade auf der Kopie durchführen und nach erfolgreichem Test die aktualisierte Instanz zur Live-Website umschalten. Dabei übernimmt man eine der Kopie der Datenbank und die Dateien vom Live-Server. Zu beachten ist natürlich, dass in dieser Zeit ein sogenannter "Content Freeze" auf der Website durchgesetzt werden muss. Redakteure dürfen dann für einen längeren Zeitraum keine Änderungen am Inhalt der Website vornehmen oder müssen diese nach dem Upgrade auf der kopierten und aktualisierten Instanz nachziehen.

Es empfiehlt sich in jedem Fall, ein Backup der Datenbank zu behalten für den Fall, dass man im Laufe des Updates versehentlich Datenbankstrukturen ändert oder löscht, die man dann wiederherstellen möchte.

PHP-Version aktualisieren

TYPO3 basiert auf der weit verbreiteten Programmiersprache PHP. Auch diese wird - ähnlich wie bei TYPO3 - auf Basis eines Supportplans betrieben. D.h. auch hier müssen wir darauf achten, eine aktuelle Version zu verwenden, die auch zur jeweiligen TYPO3-Core-Version passt und kompatibel ist:

  • TYPO3 v8: PHP 7.0 bis 7.3
  • TYPO3 v9: PHP 7.2 bis 7.4
  • TYPO3 v10: PHP 7.2 bis 7.4
  • TYPO3 v11: PHP 7.4 bis 8.0

Übrigens ist es durchaus möglich, dass eine Extension für eine aktuelle TYPO3 Version als "kompatibel" gekennzeichnet ist, aber nicht mit einer aktuellen PHP-Version kompatibel ist. In diesem Fall muss eventuell eine ältere PHP-Version verwendet werden. Solche Erweiterungen sollten man möglichst nicht einsetzen.

Wir hatten z.B. einen Fall, wo das Upgrade unter PHP 7.0 startete, das aber mit TYPO3v9 nicht mehr unterstützt wird. Parallel zu den TYPO3-Updates musste deshalb auch die PHP-Version mehrfach aktualisiert werden. flux 8 für TYPO3 v8 hatte Fehler mit PHP 7.2, flux 9 läuft aber nur noch unter PHP 7.3+ und TYPO3 v9.

Erweiterungen aktualisieren

Oft ist bei TYPO3-Upgrades auf eine neue Versionsnummer die eigentliche Herausforderung gar nicht das TYPO3-Update selbst, sondern die verwendeten Extensions. In manchen Fällen sind diese (noch) nicht mit der neuen TYPO3-Version kompatibel. In ihnen finden sich Deprecations, also Code-Bestandteile, die veraltet sind und nicht mehr unterstützt werden, Warnungen oder Fehler.

Verwendete Extensions identifizieren

Welche Erweiterungen tatsächlich aktiv genutzt werden, kann z.B. mithilfe der Erweiterung "Extension Additional Reports" geprüft werden. Diese zeigt an, welche Plugins und Inhaltstypen tatsächlich auf welcher Seite verwendet werden.

Mit dem Admin-Toool "Extension Scan" können wir die installierten Erweiterungen nach veralteten API-Aufrufen durchsuchen. Diese Aufrufe werden in der Nachfolgeversion nicht mehr unterstützt und führen ziemlich sicher zu Fehlern. Für die betroffenen Erweiterungen besteht also definitiv Handlungsbedarf.

Extensions vor TYPO3-Upgrade aktualisieren

Bei allen aktiv genutzten Extensions gilt es zu prüfen, ob sie jeweils mit der neuen TYPO3-Version kompatibel sind und dafür zur Verfügung stehen. Dies kann jeweils im TYPO3 Extension Repository in Erfahrung gebracht werden. In manchen Fällen findet man auf GitHub sogar aktuellere Extension-Versionen als im TYPO3-Extension-Repository. Kompatible Erweiterungen, kann man meist vor dem eigentlichen TYPO3-Update aktualisieren und sie dann nach dem Upgrade direkt mit der neuen TYPO3-Version weiter nutzen.

Bei Installation, die noch nicht Composer nutzen, ist das über den Extensionmanager realisierbar. Über "Get Extensions" holt man sich eine aktuelle Liste der Extensions aus dem TYPO3 Extension Repository. Anhand dieser Liste erkennt das System, zu welchen Erweiterungen eine neue Version vorliegt.

Manchmal sind einzelne Extensions zwar noch nicht als kompatibel mit der neuen TYPO3-Version markiert, funktionieren aber problemlos auch mit der neuen Version. Hier kommt es im Zweifel auf einen Test an. Wenn dieser nicht erfolgreich verläuft, kann eine solche Extension jederzeit deaktiviert werden.

Diese Updates kann man, soweit es möglich ist, noch auf der alten TYPO3-Version durchführen. Es lohnt sich, vorab in den Version Comments zu prüfen, ob mit dem Update sog. "Breaking Changes" mitkommen oder es sich nur um Optimierungen, kleine Erweiterungen und Fehlerbehebungen handelt. Bei größeren Änderungen wird es im Nachgang meist notwendig, nachzuarbeiten. Auch wenn zur Erweiterung Updates existieren, die nur für die neuere TYPO3-Version verfügbar sind, lohnt es sich, das Plugin auf die letzte für das alte System verfügbare Version zu heben, ehe man mit der Aktualisierung des TYPO3-Cores fortschreitet.

Extensions deaktivieren und nach dem TYPO3-Upgrade aktualisieren

Es gibt aber auch Extensions, die man im Rahmen des Upgrades vorübergehend deaktivieren muss. Das betrifft zum Beispiel die Extension Gridelements, die immer nur mit einer TYPO3-Version kompatibel ist. Die neuen Versionen solcher Extensions können dann erst in der TYPO3-Zielversion aktualisiert und wieder aktiviert werden.

Über notwendige Anpassungen gibt oft auch die Dokumentation der jeweiligen Extensions Aufschluss. Hier werden oft wichtige Hinweise für die Durchführung des Upgrades gegeben. Man erfährt, ob sich z.B. Templates oder TypoScript-Anweisungen ändern. Einige Extensions bieten ein Update-Skript im Extensionmanager oder einen Upgrade-Wizard im Installtool, mit denen sich etwaige nach dem Upgrade notwendige Änderungen durchführen lassen.

Extensions ersetzen

Werden bestehende Erweiterungen in der neuen TYPO3-Version nicht mehr unterstützt, kann es notwendig sein, nach passenden Alternativen zu suchen, die einen vergleichbaren Funktionsumfang haben und diese einzubinden. So gibt es zum Beispiel eine große Auswahl an Lightbox-Extensions, so dass man eine nicht mit der neuen TYPO3-Version kompatible Erweiterung recht einfach ersetzen kann. Einfache Funktionen können ggf. interimistisch ohne die Unterstützung einer Extension gelöst und selbst implementiert werden. Es kann aber tatsächlich auch notwendig werden, die Entwickler einiger Extensions zu kontaktieren und nach einem geplanten Update für die neue TYPO3-Version zu fragen.

Individuelle TYPO3-Erweiterungen aktualisieren

Sind individuell entwickelte Erweiterungen im Einsatz, die mit der neuen TYPO3-Version nicht mehr sauber laufen, steht man vor der Entscheidungen, diese an die neue Version anzupassen oder wenn möglich durch Standard-Erweiterungen zu ersetzen. Der Anpassungsaufwand für die Erweiterungen ist oft gering, tritt aber i.d.R. bei jedem zukünftigen TYPO3-Update wieder auf, was auf lange Sicht zu erhöhtem Aufwand führt. Tauscht man die Extension gegen eine Standard-Erweiterung mit ähnlicher Funktionalität aus aus, so bedeutet dies einmalig höhere Aufwand, macht sich aber auf lange Sicht im Rahmen zukünftiger Upgrades bezahlt. Eine gut dokumentierte und gepflegte Extension aus der Community lässt sich meist problemlos auf die nächste TYPO3-Version mitnehmen und man profitiert zusätzlich von Weiterentwicklungen an der Extension.

Extensions deinstallieren

Ebenso bietet sich im Rahmen eines TYPO3-Versionssprungs die Gelegenheit, kritisch zu prüfen, ob tatsächlich alle eingesetzten Extensions noch aktiv benötigt uns eingesetzt werden. Im Rahmen der Aktualisierung kann man bestimmt auch "Housekeeping" betreiben einige Altlasten loswerden.

Referenz-Index aktualisieren

Im nächsten Schritt sollte man den sog. globalen Referenz-Index überprüfen und aktualisieren. Hier werden die Verknüpfungen zwischen Inhaltselementen und Dateien verwaltet. Vor jedem Upgrade sollte dieser Index überprüft werden. Dazu geht man in das Admin-Tool "DB-Check". Dort findet man die Möglichkeit, diese Überprüfung direkt im Browser zu starten sowie entsprechende Kommandos, mit denen der Vorgang über die Shell ausgeführt werden kann. Für kleine Sites mit wenigen Seiten, Bildern und Dateien kann man die Variante direkt im Browser wählen. Größere und umfangreiche Projekte mit vielen hundert oder tausend Seiten prüft man besser über die Kommandozeile, um nicht von der maximalen Ausführungszeit des entsprechenden PHP-Skripts abhängig zu sein.

Aktualisierung des TYPO3-Cores

Hat man die Erweiterungen aktualisiert und aufgeräumt, ist man bereit für das Update des TYPO3-Cores.

  • Die neuen TYPO3-Sourcen werden per Composer oder mittels wget-Befehl von typo3.org geholt.
  • Bei Symlink-basierten Installationen ändert man das Ziel des Symlinks auf den neuen TYPO3-Core.
  • Ohne Symlinks ersetzt man die Ordner typo3_src und typo3.

Composer-basierte Installation

Mit der Einführung von Composer-basierter Installation bei TYPO3 gibt es immer mehr Extensions, die bis Version x mit TYPO3 v9 funktionieren (aber nicht mit 10), und mit Version x+1 dann mit v10, aber nicht mehr mit der v9.

Das macht das Update schwieriger, weil das neue TYPO3 zunächst einmal gar nichts tut, wenn man nicht vorher alle Extensions deaktiviert hat.

Installtool

Anschließend ruft man das Installtool über den Webbrowser auf:

/typo3/install.php

Dieses Tool ist für viele administrative Belange von großer Bedeutung und kommt zum z.B. zum Einsatz, um die TYPO3-Instanz grundlegend zu konfigurieren oder eben zu aktualisieren. Falls die Anmeldemaske nicht angezeigt wird, kann es sein, dass man aufgefordert wird, eine Datei namens ENABLE_INSTALL_TOOL anzulegen. Dies kann man per Shell/Terminal-Befehl auf dem Server erledigen. Es genügt, dass die Datei auf dem Server im richtigen Verzeichnis vorhanden ist. Sie benötigt keinen Inhalt.

Upgrade Wizard

Im Installtool findet man dann im Menü unter "Upgrade" den Upgrade Wizard für das TYPO3-Basissystem. Bei jeder großen TYPO3-Version gibt es viele Änderungen in der Struktur der Datenbank und in anderen Bereichen. Im Upgrade Wizard führt man diese Änderungen und Schritte sukzessive aus. In der Regel fehlen Datenbank-Tabellen und Datenbankfelder, die im ersten Schritt erzeugt werden. Im Anschluss weist der Upgrade Wizard auf Extensions hin, die unserer Aufmerksamkeit bedürfen.

Das meiste davon sollte man erledigen, manches kann man ignorieren oder vertagen. Wenn z.B. vorgeschlagen wird, bestimmte Extensions zu installieren, ist das manchmal nur sinnvoll, wenn man bestimmte Funktionen von älteren TYPO3-Versionen weiter nutzen möchte. Dazu führen wir weiter unten für die einzelnen Versionssprünge einige hilfreiche Hinweise und Hintergründe auf.

Database Analyzer

Auch sollte im Installtool im Bereich "Maintenance" der sog. Database Analyzer ausgeführt werden. So wird sichergestellt, dass sich die Datenbank nach dem Update auf dem richtigen Stand befindet. Etwaige dort ausgewiesene Änderungen an vorhandenen Datenbanktabellen, die vom Upgrade Wizard nicht erledigt wurden, können in der Regel ohne große Bedenken ausgeführt werden.

Betreffen die vorgeschlagenen Änderungen aber das Löschen von nicht mehr benötigten Tabellen, ist etwas Vorsicht geboten. Hier sollte man prüfen, ob Tabellen dabei sind, von denen man der Meinung ist, das man sie noch benötigt. Ein typischer Fall ist, dass man eine Extension vor dem Versions-Update deaktiviert hat, weil sie nicht direkt für die Zielversion übernommen werden konnte, sondern erst nach dem Upgrade im Zielsystem aktualisiert werden kann. Als klassisches Beispiel sei hier die Extension Gridelements genannt. Solche Tabellen kann man von der Löschaktion ausnehmen, indem man die entsprechende Checkbox nicht markiert. Wenn man sich nicht ganz sicher ist, kann man so Datenbanktabellen im Zweifelsfall bestehen lassen.

Datenbankfelder, die in der neuen TYPO3-Version nicht mehr genutzt werden kann man ebenfalls für die Löschung markieren. Auch hier kann man sich im Zweifel per Checkbox gegen die Ausführung der Löschung entscheiden. Unter "Drop fields" aufgeführte Felder und Indizes werden nicht in der neuen Version mehr benötigt und können ebenfalls gelöscht werden.

Im ersten Schritt werden hierbei Tabellen und Felder als zu löschen markiert, indem dem Tabellennamen ein Präfix vorangestellt wird. Im nächsten Schritt des zweistufigen Vorgangs werden die zuvor für die Löschung markierten Tabellen, Felder und Indizes nochmals aufgelistet und können nun endgültig gelöscht werden. Nun können Sie tatsächlich nur noch aus einem Datenbank-Backup wiederhergestellt werden.

Aktualisierung der Sprachpakete

Ebenso sollten die Sprachpakete aktualisiert werden. Dies erledigt man ebenfalls im Bereich "Maintenance" des Installtools im Bereich "Manage Language Packs". Mit einem Klick auf "Update all" bringt man alle installierte Sprach-Pakete für das TYPO3-Backend und die installierten Extensions auf den aktuellen Stand. Je nach Umfang der Erweiterungen und Vielfalt der Sprachvarianten kann dieser Vorgang einen Moment dauern, da alle aktuellen Pakete heruntergeladen werden müssen.

TCA - Table Configuration Array

In den großen TYPO3-Versionen ändern sich oft sich viele Interna und auch Datenbankfelder - vor allem Wizards und Komfortfunktionen - die dann anders deklariert werden. Zum Glück hat TYPO3 seit Version 8 eine TCA-Prüfung, die darauf hinweist, wenn man an bestimmten Stellen noch alte Syntax verwendet.

Cache leeren

Wenn im Anschluss, ebenfalls im Bereich "Maintenance", der Cache gelöscht wird ("Flush Cache"), sieht man im TYPO3-Backend bei der Versionsangabe bereits, dass man nun mit der aktuellen TYPO3-Version arbeitet. Alte Daten- und Code-Bestandteile werden so sauber entsorgt und jede aufgerufene Ansicht frisch erzeugt.

Test, Fehlerbehebung & Deployment

Nun können wir noch ein wenig "Housekeeping" betreiben. Dazu gehört zum Beispiel, nicht mehr genutzte Extensions zu löschen, Deprecations bei den Extensions zu entfernen und zu prüfen, dass das System im Live-Modus läuft. Dafür sind natürlich zuvor deaktivierte Extensions wieder zu aktivieren und bei Bedarf zu aktualisieren. Im Rahmen unserer Tests gehen wir den Seitenbaum im Backend sowie die Anzeige der Seiten im Frontend durch und können dort etwaige Fehler identifizieren und beheben. Schließlich testen wir alle Funktionen. Nach der Qualitätssicherung und Freigabe erfolgt das Deployment auf den jeweiligen Ziel-Server. Das Deployment wird zuerst auf dem Konsolidierungssystem durchgeführt und getestet. Nach erfolgter Freigabe wird dies auf dem Live-System vorgenommen und dort unter Produktivbedingungen erneut getestet.

Monitoring & Backups

Die Kontrolle der Updates des Core-Systems und aller Extensions wird bei uns mittels zentralem Monitoring-Tool (Icinga) überwacht und proaktiv an die Projektbetreuung gemeldet. Sicherheitsupdates werden daraufhin automatisiert eingespielt. Regelmäßige Backups sichern mindestens täglich die TYPO3-Instanz.

Fehlerdetails werden mittels Erweiterung in unsere Sentry-Instanz gespielt, so daß wir meist alle Informationen haben, die wir zur Behebung des Fehlers brauchen.

Upgrade von TYPO3 9 auf 10 (LTS)

Der eigentliche Upgrade-Prozess von TYPO3 9 auf 10 ist mit dem Upgrade Wizard schnell erledigt. Die größte Herausforderung sind wie so oft die Extensions. Wie ein Versionsupdate für TYPO3 grundlegend Schritt für Schritt funktioniert, lest ihr weiter oben im Artikel.

Datenbank-Update

Beim Versionssprung von TYPO3 v9 auf v10 sind einige Änderungen und Erweiterungen auf Datenbankebene zu erledigen. Das realisiert man über den Upgrade Wizard im Installtool, der neue Tabellen auf Knopfdruck anlegt und fehlende Felder ergänzt. Dies betrifft z.B. Caching-Tabellen, Felder in einigen Backend-Tabellen, Änderungen die Sitemap betreffend sowie weitere Neuerungen. Über den Database Analyzer im Bereich "Maintenance" des Installtools sollten wie oben beschrieben weitere Schritte zur Aktualisierung und Bereinigung der Datenbank durchgeführt werden.

Erweiterungen

Die Erweiterung "rsaauth", die früher genutzt wurde, um die Passwörter für Frontend und TYPO3-Backend zu verschlüsseln ist obsolet für alle Instanzen, die HTTPS verwenden. Da dies mittlerweile Standard ist, wird die Erweiterung standardmäßig nicht mehr mitinstalliert. Wer sie dennoch benötigt, kann sie im Upgrade Wizard installieren, wovon aber ausdrücklich abzuraten ist.

Darüber hinaus gibt es weitere Extensions, die man aktiv nachinstallieren muss, wenn man sie noch benötigt, so z.B. die alte Frontend-Editing-Extension "feedit", "taskcenter" für Aufgabenmanagement im Backend und die damit in Zusammenhang stehende Erweiterung "sys_action".

Neue Funktionen

Mit dem Update auf TYPO3 v10 kommen viele Neuerungen, von denen einige den Redakteur:innen durch zusätzliche Konfigurationsschritte erst verfügbar gemacht werden müssen. Neu ist z.B. die Systemerweiterung "Dashboard", mit der man sich über sog. Widgets verschiedene Informationen wie Error-Logs, News oder Inhalte aus der TYPO3-Dokumentation anzeigen lassen kann. Nach einem Upgrade ist diese im Erweiterungsmanager zwar vorhanden, aber anders als bei einer frischen TYPO3-v10-Installation noch nicht aktiv.

Fluidcontent & flux

Eigene Inhaltselemente bauten wir in der Vergangenheit mit fluidcontent, fluidpages und flux. Die ersten beiden sind mit TYPO3 10 obsolet; es wird nur noch flux benötigt. Die Umstellung über mehrere Versionen hinweg ist besonders aufwändig, da jede TYPO3-Version eine andere flux-Version erfordert. Bei jedem Update verändern sich Parameter, ViewHelper werden obsolet und bekommen - auch durch das TYPO3 - neue oder veränderte Parameter. Selbst in flux 9 noch vorhandene ViewHelper funktionieren teilweise nicht mehr mit TYPO3 v10, sodass hier ggf. auf neue Feldtypen umgestellt werden muss.

Hierfür haben wir bei den letzten Updates wohl fast die Hälfte der Entwicklungszeit für Anpassungen der Inhaltselemente aufgewendet.

TYPO3- und Flux-Versionen

Upgrade von TYPO3 8 auf 9 (LTS)

TYPO3 9 LTS bringt eine ganze Fülle an neuen Funktionen mit. Dasher ist das Update von der Vorgängerversion nicht ganz trivial. Die Anpassungen die im Rahmen des Versionssprungs von 8 auf 9 anfallen sind mannigfaltig und betreffen viele Bereich von "sprechenden URLs" bis zu TypoScript. Wie ein Versionsupdate für TYPO3 grundlegend Schritt für Schritt funktioniert, lest ihr weiter oben im Artikel.

Datenbank-Update

Bei der Aktualisierung von TYPO3 v8 auf v9 sind einige Änderungen auf Datenbankebene notwendig, die über den Upgrade Wizard im Installtool ausgeführt werden können. So werden z.B. der pages-Tabelle diverse Felder hinzugefügt, unter anderem, um die sprechenden URLs zu realisieren ("slug"). Auch diverse System-Tabellen für History, Dateien und Kategorisierungen erhalten ein Update. Einige Extensions erfordern ggf. vor dem Core-Update ein "Database Compare". Nicht zwingend notwendige Änderungen können hier aber auch nach dem TYPO3-Core-Update durchgeführt werden. Einige systemspezifische Daten werden im Rahmen des Upgrade Wizards in neue Datenbanktabellen umgezogen.

Erweiterungen

Mit TYPO3 9 haben einige SEO-Features wie sprechende URLs, Metadaten und das Erzeugen einer Sitemap direkt in den Core Einzug gehalten. Was zuvor von Extensions wie robots, realurl, seo_basics oder cs_seo erledigt wurde, leistet nun der TYPO3-Core selbst. Für Backend-Benutzer müssen in diesem Zusammenhang die Rechte für die entsprechenden Benutzergruppen angepasst werden. Es kann sich lohnen, zu prüfen, ob die bisher verwendete SEO-Extension noch benötigt wird. Natürlich ist es so, dass die namhaften SEO-Extensions immer noch einiges mehr an Funktionsumfang mitbringen, z.B. die Analyse der SEO-Aspekte einer Seite oder das Generieren von Google-Snippet-Einträgen als Vorschau in TYPO3.

Die Funktionalitäten, die sich zuvor im "Funktionen"-Menü befanden sind mit TYPO3 9 standarmäßig in das Kontextmenü einer Seite im Seitenbaum umgezogen. Das separate Backend-Modul dafür wurde abgeschafft. Wenn man dieses weiterhin nutzen möchte, sollte man die Extension "func" im Upgrade Wizard installieren.

Die Extension "typo3db_legacy" wiederum sollte nur aktiviert werden, wenn man noch Extensions im Einsatz hat, die mit der neuen Art der Datenbankkommunikation nicht kompatibel sind und die alte $GLOBALS['TYPO3_DB'] erfordern.

Das Admin Panel ist in TYPO3 v9 nicht mehr standardmäßig enthalten, sondern wird als System-Extension bereitgestellt. Diese sollte man im Upgrade-Prozess aktivieren, wenn man es weiterhin nutzen und vom erweiterten Funktionsumfang profitieren will.

Site-Konfiguration

Neu ist in TYPO3 9 das Sites-Modul im Site Management. Hier kann und muss die Website konfiguriert werden, um Features wie die sprechende URLs und das Fehlerhandling nutzen zu können. Der Root-Seite wird hierbei ein Site Identifier zugewiesen. Alle Konfigurationsdaten werden im yaml-Format in einem Ordner abgelegt, der wie der Site identifier heißt. Der sog. "Entry Point" entspricht in etwa dem, was zuvor die "Base URL" war. Hier sollte der komplette Domain-Pfad inkl. https (absolute URL) angegeben werden, weil nur auf diese Weise Features wie das 404-Error-Handling sauber funktionieren. Ebenso legt man an dieser Stelle fest, was die Standard-Sprache für die Website ist und verknüpft passend zum Locale den entsprechenden XLF-File mit den Übersetzungen für jede Sprachvariante. Wenn man den neuen Language Menu Processor verwendet, so kann hier auch festgelegt werden, wie die jeweilige Sprache im Frontend genannt und ausgegeben werden soll.

Sprechende URLs

Sprechende URLs realisierte man bisher mit die Erweiterung realurl, die für TYPO3 9 nun nicht mehr verfügbar ist. Die entsprechende Funktionalität wird nun ebenfalls direkt vom TYPO3-Core mit übernommen. In diesem Zusammenhang wird man in einem Schritt im Upgrade Wizard dazu aufgefordert, die sog. Slugs zu allen existierenden Seiten hinzuzufügen. Man muss daran denken, den Redakteuren im Backend Zugriff auf das neue Feld "slug" zu gewähren, so dass dieses beim Erstellen von neuen Seiten nicht leer bleibt, was dazu führen würde, das die Seite nicht aufgerufen und angezeigt werden kann. Wer Seiten von sprechenden URLs ausnehmen möchte, sollte sich die Erweiterung masi anschauen.

Error Handling

Für das Error Handling kann in der Site-Konfiguration festgelegt werden, wie mit typischen Fehlern (z.B. 404 "Page not found") umgegangen werden soll, z.B. kann eine speziell für diesen Zweck erstellte Fehlerseite angezeigt werden. In einem Multi Domain Setup nimmt man die Site-Konfiguration für jede Seite vor, die Root-Seite einer Website in der TYPO3-Instanz ist. Allerdings macht TYPO3 bei Fehlern einen HTTP-Request an die 404-Seite. Das ist ineffizient, und deshalb wollten wir pxa_lpeh nutzen. Beim Update auf TYPO3v10 stellte sich aber später heraus, dass die Extension damit nicht funktioniert, und wir mussten auf eine statische Seite ausweichen.

URL-Routing

Das neue URL-Routing in TYPO3 9 erzeugt standardmäßig sprechende URLs ohne den Suffix ".html". Über entsprechende Anpassungen mit sog. routeEnhancers in der Site-Konfiguration kann man aber auch das für die Site-Inhalte und Extensions realisieren und es wird nicht notwendig, im großen Stile 301-Redirects für die bisher von realurl erzeugten URLs zu generieren. Legt man in der entsprechenden config.yaml als PageTypeSuffix für Seiten vom Typ "pageType" als Suffix ".html" fest, so wird dies den URLs hinzugefügt.

TYPO3 Rpute Enhancers

Passwortverschlüsselung

Ebenso hat sich der Hash-Mechanismus verändert, mit dem die Passwörter verschlüsselt werden. Hier gilt es zu prüfen, ob der neue Mechanismus "argon2i" auf dem jeweiligen Server nutzbar ist. Existierende Passwörter werden im Rahmen des Upgrades automatisch aktualisiert. Wenn Sie sich nach dem Upgrade auf Version 9 nicht mehr einloggen können, kann das also an dieser Änderung liegen. Ein abweichender Hash-Algorithmus kann im Zweifelsfall bei den "Password hashing settings" im TYPO3-Backend gesetzt werden.

TypoScript-Syntax

Mit TYPO3 9 hält eine neue Syntax für TypoScript-Conditions Einzug, die auf der Symfony Expression Language basiert, da das PHP-Framework Symfony inzwischen für viele Teile von PHP genutzt wird. Das grundlegende Markup mit den eckigen Klammern bleibt erhalten, aber die Syntax der Conditions hat sich geändert, was deutlich mehr Flexibilität bietet und u.a. den direkten Zugriff auf Werte aus der Site-Konfiguration ermöglicht und auch den Umgang mit Konstanten erheblich vereinfacht. Aus Gründern der Abwärtskompatibilität sind vorerst auch die alten Conditions noch gültig, ab TYPO3 10 werden diese aber nicht mehr unterstützt.

Dateiendungen

Außerdem wurden für TYPO3 9 die Dateiendungen für TypoScript- und TSconfig-Dateien verändert und standardisiert. Die bisherigen Varianten und Konventionen funktionieren weiterhin, sollten aber mit Blick auf zukünftige Upgrades auf den neuen Standard angepasst und modernisiert werden. Darüber hinaus wurde auch die Syntax, mit der man TypoScript-Dateien einbinden kann, erheblich vereinfacht.

TYPO3 Dateiendungen

Typische Probleme beim Upgrade auf TYPO3 9

Optische Darstellungsfehler im Frontend

Da es die Extension css_styled_content nicht mehr gibt, muss man das TypoScript fluid_style_content einbinden, das sich um das Rendering der Frontend-Ausgabe kümmert und das Templating entsprechend überarbeiten. Fluid Templates werden nunmehr für das tt_content-Rendering verwendet. Als Startpunkt kann man das alte CSS aus der css_styled_content Extensions extrahieren und manuell einbinden - oder am besten gleich neu schreiben.

Bilder fehlen im Frontend

Es müssen Datenbank-Updates in tt_content sowie sys_file_reference ausgeführt werden, da sich die Tabellenspalten für die Bilder geändert haben. Diese finden sich jetzt in der Spalte "assets" und nicht mehr wie zuvor in "image" oder "media".

Seiten lassen sich nicht mehr aufrufen

realurl ist für TYPO3 9 nicht mehr verfügbar. Die neue Site-Konfiguration muss für die Website eingerichtet werden (s.o.). Für Extensions muss man die config.yaml manuell erweitern.

Nicht verwendete Elemente auf einer Seite

Wenn man bisher noch keine Backend-Layouts in TYPO3 definiert hatte, erhält man nach dem Upgrade auf Version 9 beim Bearbeiten einer Seite die Fehlermeldung, dass bestimmte Elemente keiner der verfügbaren Content-Spalten auf dieser Seite zugeordnet. Man sollte sie entweder löschen oder in eine der bestehenden Spalten verschieben.

Wir sind MOGIC,

eine Digitalagentur mit rund 30 Mitarbeiter*innen aus Leipzig. Wir lösen digitale Herausforderungen, seit über 20 Jahren - für Ihr Unternehmen, Startup oder Institution. Wir entwickeln und betreiben Websites, Online-Portale, Online-Shops, webbasierte Softwarelösungen und mobile Apps. Wir sind MOGIC - wir gestalten digital.

MOGIC Geschäftsleitung

Geschäftsleitung: Matthias Hennig, Stefan Berger und Gunter Schwarz

Bereit für eine kostenlose Erstberatung oder einfach einen ersten Kaffee?

Nehmen Sie ganz unverbindlich Kontakt zu uns auf.

Vielen Dank für Ihre E-Mail. In der Regel erhalten Sie innerhalb von 24 Stunden Rückantwort von uns.
Die E-Mail wurde nicht versendet. Bitte versuchen Sie es erneut.

Rufen Sie uns gern an unter +49 341 656797-0 oder vereinbaren Sie einen Termin direkt in unserem Kalender.

Wir verwenden Ihre persönlichen Daten ausschließlich zur Bearbeitung Ihrer Anfrage. Weitere Informationen finden Sie in der Datenschutzerklärung.
BVMW
TYPO3 Gold Member

Deutscher Mittelstands-Bund (DMB)