Upgrade von TYPO3 9 LTS auf 10 LTS
Am Beispiel unseres Musterprojekts zeigen wir, wie ein Upgrade auf TYPO3 10 LTS durchgeführt werden kann.
Ein Upgrade von TYPO3 9 auf 10 ist eigentlich nicht schwer. Das System selbst lässt sich in der Regel problemlos aktualisieren.
Ein Problem könnten dabei aber eingesetzte Extensions sein, die (noch) nicht mit TYPO3 10 kompatibel sind. Ebenso gibt es ein paar Änderungen, die zum Beispiel bei der Nutzung eines eigenen Sitepackages (eine Extension, die zur Ausgabe des Frontends genutzt wird) berücksichtigt werden müssen.
In den folgenden Videos zeigen wir am Beispiel unseres Musterprojekts, wie ein Upgrade auf TYPO3 10 durchgeführt werden kann.
Aber eines vorweg: diese Videos können keine allgemeingültige Anleitung für jedes TYPO3-Projekt sein. Denn jedes Projekt hat vielleicht eigene, individuelle "Fallstricke", die berücksichtigt werden müssen.
Trotzdem sind die Schritte prinzipiell immer die gleichen.
In den Videos wird eine "klassische" auf Symlinks basierende TYPO3-Installation verwendet. Das Upgrade wird in einem Cloud Hosting-Paket durchgeführt, aber natürlich funktioniert das Ganze auch im Classic Hosting. Auf wesentliche Unterschiede weisen wir den Videos hin.
TYPO3 Projekt kopieren
Upgrades von TYPO3 sollten niemals an der Live-Website durchgeführt werden. Selbst wenn ein Upgrade einfach und schnell erscheint, kann es immer wieder zu unvorhergesehenen Komplikationen kommen. Damit die Besucher der Website davon nichts mitbekommen, sollte so ein Upgrade also immer an einer Kopie der Website durchgeführt werden. So kann man in Ruhe die Kopie upgraden während die Originalseite unbeeinträchtigt weiter läuft.
Wenn das Upgrade abgeschlossen wurde, kann die aktualisierte Kopie zur Live-Seite umgeschaltet werden. Diese Umschaltung dauert in der Regel nur wenige Minuten. Im Idealfall bekommen die Besucher der Website von den ganzen Vorgang überhaupt nichts mit.
Was man natürlich im Hinterkopf behalten muss: werden während des Upgrades Inhalte an der Original-Seite geändert, müssen diese Inhalte in der Kopie nachgetragen werden. Eine nachträgliche Synchronisation ist unter Umständen nur mit Aufwand möglich.
Die auf dieser Seite beschriebene Vorgehensweise richtet sich an Anwender, die ihr TYPO3-System direkt auf dem Server aktualisieren möchten.
Natürlich gibt es, gerade bei größeren Installationen, noch ganz anderen Sachen zu beachten, auch wenn z.B. mit einem Deployment wie TYPO3 Surf oder Deployer gearbeitet wird. Diesen Anwendungsfall berücksichtigen wir aber in dieser Anleitung nicht.
TYPO3 Projekt kopieren Teil 1: Dateien
Um eine Kopie des TYPO3-Systems zu erstellen, müssen zwei Komponenten kopiert werden.
- Die Dateien auf den Server
- Die Datenbank
Im folgenden Video zeigen wir, wie Sie die Dateien einer TYPO3-Installation kopieren können.
TYPO3 Projekt kopieren Teil 2: Datenbank
Im zweiten Schritt muss eine Kopie der Datenbank erstellt werden.
Export-Datei (Dump) der Datenbank erstellen:
mysqldump --opt -h host -u benutzername -p datenbankname > database.sql
Die Angabe host ersetzen Sie bitte mit dem Datenbankserver, wie in Ihrem Kundenmenü hinterlegt.
Die weiteren Zugangsdaten finden Sie am einfachsten in der Datei typo3conf/LocalConfiguration.php
Anschließend legen Sie über das Kundenmenü eine neue Datenbank an und importieren den Dump in diese Datenbank.
mysql -h host -u benutzername -p datenbankname < database.sql
Zum Schluss müssen in der Datei typo3conf/LocalConfiguration.php der Kopie die neuen Datenbank-Zugangsdaten eingetragen werde.
Alle Schritte werden im folgenden Video ausführlich gezeigt.
(Sub)Domain mit der Kopie verknüpfen
Damit die Kopie des Projekts im Webbrowser aufgerufen werden kann, muss jetzt eine Domain oder Subdomain mit dem Projektverzeichnis auf dem Server verknüpft werden.
Im Cloud Hosting empfehlen wir die Verwendung einer Subdomain, da dort zum Beispiel auch die PHP-Version unabhängig von der Hauptdomain eingestellt werden kann und bei Bedarf auch ein kostenloses Lets's Encrypt-SSL-Zertifikat für die Subdomain erstellt werden kann.
Im Classic Hosting können Sie, falls Sie unterschiedliche PHP-Versionen nutzen möchten oder müssen, auch eine kostenlose *.webseiten.cc Domain verwenden.
Nachdem die (Sub)Domain verknüpft wurde, muss in der Site Configuration von TYPO3 noch der sogenannte Entry Point (Einstiegspunkt) angepasst werden, damit auch die Frontendausgabe der Website korrekt funktioniert.
Projekt prüfen, Extensions aktualisieren
Vor dem eigentlichen Upgrade sollte die Installation überprüft werden. Funktioniert in der Kopie alles genau so, wie in der Live-Seite?
In dieser Phase sollte man auch die eingesetzten Extensions prüfen. Werden alle aktiven Extensions tatsächlich benötigt? Oder liegen noch irgendwelche "Karteileichen" im System?
Nicht aktiv genutzte Extensions sollten aus dem System komplett entfernt werden.
Bei allen aktiv genutzten Extensions müssen Sie prüfen, ob diese für die neue TYPO3-Version zur Verfügung stehen. Eventuell können schon jetzt in TYPO3 9 die Extensions aktualisiert werden und direkt in TYPO3 10 weitergenutzt werden.
Es gibt aber auch Extensions, die temporär deaktiviert werden müssen (zum Beispiel Gridelements). Die neuen Versionen solcher Extensions können dann erst in TYPO3 10 aktualisiert und wieder aktiviert werden.
Sollten Sie eine Extension im Einsatz haben, die nicht für TYPO3 10 zur Verfügung steht, müssen Sie ggf. nach einer Alternative suchen. Vielleicht gibt es eine mit 10 kompatible Extension, die einen gleichen oder zumindest ähnlichen Funktionsumfang hat.
Schlimmstenfalls müssen Sie den Extensionentwickler kontaktieren und ein Update der Extension anfragen.
Den TYPO3 Kern aktualisieren
Der nächste Schritt besteht darin, den TYPO3-Kern "auszutauschen". In einer Symlink-basierten Installation bedeutet das, das Ziel des Symlinks auf das Verzeichnis des neuen TYPO3-Kerns zu ändern.
Anschließend kann man das Installtool aufrufen über die Webadresse
domain.de/typo3/install.php
Eventuell erhält man jetzt einen Hinweis, dass man eine Datei namens ENABLE_INSTALL_TOOL im Verzeichnis typo3conf/ anlegen soll.
Dazu wechselt man auf der Shell in dieses Verzeichnis und legt die Datei an:
cd typo3conf/
touch ENABLE_INSTALL_TOOL
Diese Datei benötigt keinen Inhalt, sie muss einfach nur vorhanden sein.
Anschließend das Installtool erneut aufrufen, dann sollte die Anmeldemaske erscheinen.
Falls Sie das Passwort für das Installtool nicht (mehr) wissen: hier finden Sie eine Anleitung zum Neusetzen des Installtool-Passworts.
Im Installtool können dann der Upgrade-Wizard und der Database Analyzer ausgeführt werden. Auch die Sprachpakete sollten aktualisiert werden.
Zum Schluss noch alle Caches löschen, dann sollte im Backend bereits sichtbar sein, dass man jetzt in der aktuellen TYPO3 10.4.x arbeitet.
Anpassungen am Musterprojekt
Damit die TSconfig-Dateien des Musterprojekts wieder korrekt geladen werden, muss die Datei typo3conf/ext(jwmusterprojekt9/ext_localconf.php bearbeitet werden.
Optional: neue Funktionen von TYPO3 10
TYPO3 10 bringt ein paar neue Funktionen mit, zum Beispiel das Dashboard. Sollen diese neuen Funktionen auch durch Redakteure (also Benutzer ohne Administrationsrechte) genutzt werden, sind in der Regel Anpassungen an den Benutzerrechten notwendig.
Optional: Musterprojekt 9 durch Musterprojekt 10 ersetzen
Sämtliche Konfiguration des Musterprojekts liegt in einer eigenen kleinen Extension, einem sogenannten Sitepackage. Diese Extension in der Version 9 (jwmusterprojekt9) kann allerdings nicht direkt auf die Version 10 (jwmusterprojekt10) aktualisiert werden.
Es gibt aber die Möglichkeit, die Extensions einfach auszutauschen.
Wichtig: sollten Sie in den Dateien der Ext. jwmusterprojekt9 Änderungen vorgenommen haben, zum Beispiel im CSS, JavaScript oder den Fluidtemplates, können diese Änderungen nicht automatisch übernommen werden. Hier müssten Sie manuell die notwendigen Änderungen übertragen.
Im Video sehen Sie die wichtigsten Schritte zum Austausch der Musterprojekt-Extension.
Hier finden Sie eine ausführliche Dokumentation der Funktionen des Musterprojekts 10.
Aufräumen und Liveschaltung
Bevor die aktualisierte Version der Website live geschaltet wird, sollte man noch ein wenig "aufräumen". Dazu gehört zum Beispiel, nicht mehr genutzte Extensions zu löschen, nochmal zu prüfen, ob die Datenbank auf einem aktuellen, sauberen Stand ist und dass das System im Live-Modus läuft.
Anschließend soll dann die neue Version über die Hauptdomain angezeigt werden.
Backup-Skript anpassen
Spätestens jetzt sollte das Projekt auch in das daily-Skript aufgenommen werden. Diese Datei liegt im Verzeichnis typo3cms/system/backup.
Über das Skript werden nicht nur nächtliche Backups der dort aufgeführten Projekte durchgeführt, auch Wartungsarbeiten am Hostingpaket oder das Verteilen neuer TYPO3-Versionen wird darüber gesteuert.
Natürlich werden auch Backups auf externen Systemen automatisch angelegt, aber auf die Backups, die durch das daily-Skript erzeugt werden, haben Sie selbst direkten Zugriff.