TYPO3 Update

TYPO3 Update auf Version 8 durchführen

TYPO3 Update auf Version 8

Anleitung: TYPO3 Update auf Version 8 durchführen. Wir erklären, wie ein TYPO3 Upgrade von Version 7.6 LTS auf Version 8.7 LTS durchgeführt wird.

TYPO3 Update auf Version 8 durchführen

Für ein TYPO3 Update auf Version 8 steht die Uhr auf „fünf vor zwölf.“ Denn im November 2018 läuft der Support für TYPO3 in Version 7.6 LTS (LTS = Long Time Support = Langzeitunterstützung) aus.

Wenn Sie Ihren Internetauftritt nicht „auf Verschleiß fahren wollen“ ist es Zeit, zu handeln. Natürlich gibt es weiterhin die Möglichkeit, den kostspieligen Extended Support in Anspruch zu nehmen. Für eine Domain betragen die Kosten dafür aktuell € 2.000,00 pro Jahr zuzüglich Mehrwertsteuer.

Die TYPO3-Website einfach nicht mehr zu aktualisieren wäre eine mögliche Alternative. Allerdings gibt es auch wichtige Gründe, die dagegen sprechen:

  1. Hacker können Sicherheitslücken ausnutzen, um die Website zu verändern oder zu zerstören.
  2. Neue Extensions werden nicht mehr für veraltete TYPO3-Versionen angeboten und das System lässt sich nicht mehr oder nur noch schwer erweitern.
  3. Hoster schalten ältere PHP- oder Datenbank-Versionen aus Sicherheitsgründen nach und nach ab. Früher oder später steht daher die benötigte serverseitige Systemumgebung für den Betrieb der veralteten TYPO3-Website nicht mehr zur Verfügung.

Voraussetzungen für ein TYPO3-Update

Kürzlich wurden wir wieder einmal gefragt, ob wir ein TYPO3 Update auf Version 8 durchführen können. Die Antwort lautet: „Ja.“

Benötigen Sie Unterstützung bei Ihrem TYPO3-Projekt, so können Sie gerne Kontakt zu uns aufnehmen.

Rückfragen zu vorgenanntem Projekt hatten ergeben, dass es sich um eine TYPO3-Website aus dem Jahre 2010 mit TYPO3 in Version 4.x handelte. Das System wurde somit seit rund 8 Jahren nicht mehr gewartet oder aktualisiert. Da ein direktes Update auf eine aktuelle TYPO3-Version nicht möglich ist, müsste die Website zunächst auf TYPO3 6.2 LTS aktualisiert werden, dann auf TYPO3 7.6 LTS und anschließend noch auf TYPO3 8.7 LTS. Der Aufwand kann – insbesondere beim Einsatz vieler Extensions, die für aktuellere TYPO3-Versionen nicht mehr verfügbar sind – sehr hoch ausfallen. Je nach Art und Umfang der Website ist es daher gegebenenfalls einfacher, die Website komplett neu aufzusetzen und z.B. auch responsive zu machen.

Vorbereitung: TYPO3 Upgrade von 7.6 LTS auf TYPO3 8.7 LTS durchführen

Serverseitige Voraussetzungen

Serverseitig wird für den Betrieb von TYPO3 in Version 8.7 PHP in Version 7.0 bis 7.2 benötigt sowie eine MySQL Datenbank in Version 5 bis 5.7 (oder PostgresSQL / Microsoft SQL Server). Weiterhin sind mindestens 256 MB RAM empfehlenswert.

Die PHP-Version lässt sich im Kundenaccount des Hosters aktualisieren oder durch einen Eintrag in die .htaccess-Datei. Der Eintrag kann sich je nach Hoster unterscheiden. Üblich sind Einträge wie:

#PHP Version 7.0 einstellen:
AddHandler application/x-httpd-php70 .php

#oder:
AddHandler php70-cgi .php

 

Datensicherung durchführen!

Bei der Durchführung eines TYPO3 Updates führen Sie tiefgreifende Veränderungen am System durch, die sich in der Regel nicht wieder rückgängig machen lassen. Daher sollten Sie als erstes unbedingt ein vollständiges Backup durchführen. Dazu gehört:

  1. Ein Backup aller Verzeichnisses und Dateien des bestehendes TYPO3-Systems (= Datenbackup).
  2. Ein Datenbankbackup

Datenbackup

Theoretisch können Sie ein Backup der Serverdaten durchführen, indem Sie eine FTP-Verbindung aufbauen und die Daten vom Server auf den eigenen Rechner übertragen. Auf diesem Wege ein Backup zu erstellen hat jedoch entscheidende Nachteile:

  • Da ein TYPO3 System aus tausenden von Einzeldateien besteht und inklusive eigener Medien schnell 20.000 bis 30.000 Dateien zusammenkommen, dauert die Übertragung sehr lange.
  • Es ist zudem nicht gewährleistet, dass alle Daten korrekt und vollständig übertragen werden. Insbesondere z.B. bei einer umfangreichen Verzeichnistiefe und langen Verzeichnis-/Dateinamen.

Daher sollten Sie nach Möglichkeit das Backup Mittels SSH erstellen.
Voraussetzung für ein solches Backup ist, dass Ihr Hostingpaket über einen SSH-Zugang verfügt. Außerdem benötigen Sie ein Programm wie PuTTY, um über Secure Shell oder Telnet eine Verbindung zum Server herzustellen.

Nachdem die Telnet-Verbindung zum Webserver aufgebaut wurde, reicht eine einfache Befehlszeile, um ein ZIP- oder TAR-Archiv des kompletten TYPO3-Rootverzeichnisses zu erstellen. Nehmen wir an, die bisherige TYPO3-Installation befindet sich im Verzeichnis /typo3_7 und das Backup-Archiv soll unter dem Namen „typo3_backup“ ebenfalls in dieses Verzeichnis gesichert werden. Dann lautet der entsprechende Befehl:

#ZIP-Archiv:
zip -r typo3_7/typo3_backup.zip typo3_7

#oder TAR-Archiv:
tar cfvz typo3_backup.tar.gz typo3_7

Je nach Datenumfang ist die ZIP/TAR-Datei normalerweise nach wenigen Minuten erstellt.

Datenbankbackup

  1. Puristen führen das Backup („Dump“) gerne über MySQL durch. Heißt die Datenbank „typo3_datenbank“, so ist dies mit dem Befehl: mysqldump -u root -p typo3_datenbank > meinesicherung.sql möglich.
  2. Ein Backup der Datenbank lässt sich auch mit Hilfe von phpMyAdmin erstellen, welches beim Hoster in der Regel vorinstalliert ist. Bei umfangreichen Datenbanken kann der Backup-Vorgang allerdings ins Time-Out rutschen und abgebrochen werden. Als Ausweg können Sie in diesem Fall im Install-Tool die sys-logs löschen, um so die Datenbank zu verkleinern.
  3. Hilft auch das nicht, so bietet sich der MySQLdumper an. Dieses Tool ist in der Lage, abgebrochene Backupvorgänge automatisch wiederaufzunehmen und so auch dann ein erfolgreiches Datenbank-Backup zu erstellen, wenn die maximale Scriptlaufzeit überschritten wird. Der MySQLdumper ist in der Standardversion allerdings derzeit nur bis PHP in Version 5.x lauffähig, denn die neuste Version 1.24.4 stammt noch von Januar 2011. Es gibt jedoch auch eine modifizierte Form des MySQLdumpers die unter PHP in Version 7.x lauffähig ist.

TYPO3-System spiegeln

Nachdem wir ein Backup aller Serverdaten und der Datenbank erstellt haben, kann es losgehen: wir starten das TYPO3 Update 7.6 LTS und aktualisieren den Core auf TYPO3 8.7 LTS.

Aber Vorsicht!: Führen wir die Aktualisierung am Live-System durch, so stören wir den laufenden Betrieb der Website erheblich. Denn es ist nicht so, dass wir einfach nur einen „Aktualisieren-Knopf“ drücken und das neue TYPO3-System ist – wie von Zauberhand – sofort lauffähig.

Damit die Besucher von der Systemaktualisierung nichts mitbekommen, sollt das System gespiegelt werden. Dazu kann beispielsweise eine Subdomain angelegt werden auf das neue Verzeichnis /typo3_8.7 verweisen und in dieses Verzeichnis wird das Backup der Serverdaten entpackt.

Über SSH ist das schnell und einfach erledigt. Der zugehörige Befehlt lautet:

#Entpacken des zuvor erstellten ZIP-Archivs:
unzip typo3_backup.zip

#Entpacken eines TAR-Archivs:
tar xfvz typo3_backup.tar.gz

Noch schneller ist es, den bestehenden TYPO3-Ordner einfach zu duplizieren:

cp -r typo3_src-7.6 typo3_src-8.7

Im zweiten Schritt wird eine neue (leere) Datenbank angelegt und das zuvor erstellte Datenbank-Backup dorthin eingespielt.

Wichtig: das gespiegelte TYPO3 System greift weiterhin auf die bisherige Datenbank des Live-Systems zu. Daher werden wir im nächsten Schritt:

  1. Im TYPO3-Install-Tool die Verbindungsparameter zur Datenbank ändern und die Zugangsdaten zur neu erstellten Datenbank eintragen. Diese finden sich unter: All configuration > $TYPO3_CONF_VARS[‚DB‘]
  2. Sofern nicht mit absRefPrefix gearbeitet wird, muss im TypoScript noch die BASE geändert werden.
    config.baseURL =

Das TYPO3 Update auf Version 8 durchführen

Im vorherigen Schritt haben wir das bestehende TYPO3-System gespiegelt und können in dieser Entwicklungsumgebung schalten und walten, ohne dass die Besucher der Website etwas davon mitbekommen. Wer auf Nummer Sicher gehen möchte, kann die neue Subdomain noch mit einem .htaccess-Passwortschutz versehen.

Extensions und Referenz-Index aktualisieren

Bevor wir das eigentliche TYPO3-Update durchführen, sollten wir zunächst alle Extensions soweit wie möglich aktualisieren. Das heißt auf die letzte für TYPO3 7.6 LTS kompatible Version.

Danach ist der Referenz-Index zu aktualisieren. Dazu wählen wir im TYPO3-Verzeichnisbaum unter SYSTEM die Funktion DB-Überprüfung. Oben im Drop-Down-Menü ist per Standard „Übersicht“ voreingestellt. Hier wählen wir die Option Referenz-Index verwalten. Danach wählen wir durch Anklicken des entsprechenden Buttons die Funktion Referenzindex prüfen aus. Nach erfolgreicher Aktualisierung des Referenz-Index geht es weiter mit dem nächsten Schritt:

Überprüfung der Datenbank im Install-Tool

Wir rufen das Install-Tool auf und bemühen unter Important actions die Funktion Compare current database with specification. Hier lassen sich nicht mehr benötigte Datenbanktabellen und –felder deaktivieren („rename with prefex“). Wir können sie in einem nächsten Schritt Mittels „Drop fields (really!)“ löschen. Da wir ein Backup der Datenbank haben und am gespiegelten System arbeiten, können wir das (theoretische) Risiko eingehen, versehentlich noch benötige Tabellen und Felder zu löschen. Nach der Bereinigung sollten wir die Website sicherheitshalber im Frontend überprüfen um sicherzustellen, dass alles korrekt funktioniert.

Das neue TYPO3 8.7 LTS aufspielen

TYPO3 Update auf Version 8: Wir beziehen die aktuellste Version von TYPO3 7.6 LTS von der TYPO3-Website unter https://typo3.org/download/ – entweder als TAR- oder als ZIP-Archiv. Dieses Archiv laden wir per FTP in das zuvor erstellte neue TYPO3-Verzeichnis /typo3_8.7 und entpacken es via SSH.

#Entpacken des ZIP-Archiv (beispielsweise in Version 8.7.20):
unzip typo3_src-8.7.20.zip

#Entpacken des TAR-Archivs:
tar xfvz typo3_src-8.6.20.tar.gz

Schneller geht es, das TYPO3-Paket Mittels wget() zu beziehen und zu entpacken.

Damit das TYPO3-System auf die neuen Verzeichnisse zugreift, müssen wir die Symlinks neu erstellen. Zunächst löschen wird daher die beim Spiegeln des System statt der Symlinks erstellten vollständigen (überflüssigen) Verzeichnisse per SSH und erstellen danach wieder per SSH neue Symlinks.

Temporäre Dateien löschen

Die Inhalte des Verzeichnisses /typo3temp bereiten häufig Probleme. Dies äußert sich beispielsweise darin, dass das Frontend nach dem Austausch des TYPO3-Cores weiß bleibt oder statt der Website Fehlermeldungen ausgegeben werden.

Dieses Verzeichnis sollten wir vorsichtshalber zunächst nur umbenennen (und nicht löschen). Es wird dann automatisch neu erstellt.

Upgrade Wizard

Um die Aktualisierung fortzusetzen, bemühen wir erneut das Install-Tool und rufen den Upgrade Wizard auf. Dieser überprüft automatisch die Datenbank auf nicht mehr benötigte Datenbanktabellen sowie Datenbankfelder und bietet deren Deaktivierung bzw. Löschung an. Außerdem weist er – sofern vorhanden – auf Deprecated RTE properties in der TS-Konfiguration hin.

Werden inkompatible Extensions angezeigt, so müssen wir diese zunächst löschen und danach eine aktuelle Version installieren, die mit TYPO3 8.7 kompatibel ist. Gibt es für Extensions keine kompatible Version, so müssen Alternativen gesucht, installiert und individuell konfiguriert werden. Oder es wird auf das entsprechende Feature verzichtet.

Das ist ein wesentlicher Grund, warum es oft nicht sinnvoll ist, die aktuellste TYPO3-Version zu installieren. So nutzen beispielsweise sehr viele TYPO3-Websites die Extension realURL, um „sprechende“, suchmaschinenfreundliche URLs zu erzeugen. Aktuell (Stand 11.2018) ist die Kompatibilität dieser Extension im Repository weiterhin für 7 LTS und 8 LTS nicht aber für 9 LTS ausgewiesen.

Wir führen den Upgrade Wizard Schritt für Schritt durch und entscheiden je nach Erfordernis, welche Updates durchgeführt werden sollen.

Möglicherweise werden nun noch Fehler ausgegeben. Das kann, muss aber nicht sein und ist abhängig von der jeweiligen Systemumgebung:

  1. PHP always_populate_raw_post_data is deprecated
    always_populate_raw_post_data=0
    PHP is configured to automatically populate $HTTP_RAW_POST_DATA.
    Warning: Expect fatal errors in central parts of the CMS if the value is not changed to: always_populate_raw_post_data=-1

    Problembehebung: folgenden Eintrag in der .htaccess-Datei vornehmen:
    php_value always_populate_raw_post_data -1
  2. Empty systemLocale setting
    $GLOBALS[TYPO3_CONF_VARS][SYS][systemLocale] is not set. This is fine as long as no UTF-8 file system is used.

    Problembehebung: Im Install-Tool unter
    All Configuration > System [SYS]

    1. Haken setzen bei [SYS][UTF8filesystem]
    2. [SYS][systemLocale] = de_DE.UTF-8

Im Install-Tool ist nun unter Important Actions ein erneuter Database Compare durchzuführen und die Änderungen an der Datenbank sind zu bestätigen. Danach bemühen wir im Bereich Important Actions den Button Clear all cache.

Aktualisierung der Extensions

Im Extension Manager sind nun alle installierten Extensions zu prüfen und zu aktualisieren.

Sollten nach der Aktualisierung Probleme auftreten, so können wir die betreffenden Extensions zunächst vollständig deinstallieren und danach erneut mit einer TYPO3 8.7 LTS kompatible Version installieren.

Im Language-Modul ist noch die Übersetzung der benötigen Sprachen zu aktualisieren.

Nun wechseln wir ins Frontend der TYPO3-Installation und prüfen die Funktionstüchtigkeit der Website. Sollte es zu Problemen kommen, so können wir im Install-Tool die PHP-Fehlerausgabe aktivieren. Das lässt sich unter Configuration Presets durch die Aktivierung des Debug-Modus erreichen. Oder aber wir aktivieren die Fehlerausgabe über

All configuration > [SYS][displayErrors] = 1

Erfahrungsgemäß bereiten eine Reihe von Extensions nach dem TYPO3 Update auf Version 8 Probleme. So sorgt beispielsweise die Extension realURL für Fehlermeldungen im Frontend und verhindert so in schöner Regelmäßigkeit die Anzeige der Website. Indem wir /typo3temp umbenennen/löschen (siehe oben) lässt sich das Problem in der Regel beheben. Bei einigen Extensions müssen wir nach dem Update das TypoScript und/oder die zugehörige Templates überarbeiten.

Wir hoffen, Ihnen mit dieser Anleitung einen guten Leitfaden bereitgestellt zu haben und wünschen viel Erfolg bei der Aktualisierung Ihres TYPO3-Systems!

Hat Ihnen dieser Beitrag gefallen? Dann dürfen Sie ihn gerne über Social-Media-Kanäle wie Facebook teilen. Nutzen Sie dafür einfach den entsprechenden Button unterhalb dieses Beitrags oder in der linken Leiste.

Benötigen Sie Unterstützung beim TYPO3 Update auf Version 8? Dann können Sie uns gerne mit der Beratung und/oder Durchführung beauftragen.

 

Stichworte: TYPO3 Update auf Version 8, TYPO3 Update 7.6 LTS

5/5 - (5 votes)

1 Kommentar zu “TYPO3 Update auf Version 8 durchführen

  1. Dan Riesen

    Gute Erklärung. Leider kann dann immer noch etwas schieflaufen und man beginnt wieder auf dem Start. Ich habe für das Update noch mal alle Extension deinstalliert, die Datenbank auf UTF8 umgestellt damit es dann schliesslich geklappt hat..

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Wir benutzen Cookies um die Nutzerfreundlichkeit der Webseite zu verbessen. Besucher erfassen wir über MATOMO in einer lokalen Datenbank - IP-Adressen werden anonymisiert und können keinen Personen zugeordnet werden.