Zum Inhalt springen

Upgrade Anleitung – klassische TYPO3 Installation mit Sym-Links

Kopie des Projekts erstellen

Um ein Upgrade an Ihrer Website durchzuführen, sollten Sie auf jeden Fall vorher eine Kopie des Projekts erstellen und das Upgrade an der Kopie durchführen. Währenddessen kann die originale Website unter der offiziellen Domain erreichbar bleiben. Bevor die Kopie jedoch erstellt wird, muss geprüft werden, wie viel Speicherplatz der betreffende Account hat, damit beim Erstellen der Kopie nicht der Speicherplatz vollständig belegt wird. Ggf. kann der Speicherplatz temporär erweitert werden.

Diese Anleitung setzt voraus, dass Sie einen SSH-Zugang zur Website haben und Grundlagen der Arbeit auf der Kommandozeile beherrschen.

Zum Kopieren des Projekts sind folgende Schritte nötig:

  1. Kopie der Datenbank erstellen
  2. Kopie des Projektverzeichnisses erstellen und mit der kopierten Datenbank verbinden
  3. eine Entwicklungs-Domain erstellen und auf das kopierte Verzeichnis zeigen lassen

Eine Kopie der Datenbank erstellen

Auf dem Cloud-Server:

  • In Plesk Kundenmenü den Menüpunkt "Datenbanken" auswählen, dann in der Liste nach der  verwendeten Datenbank suchen und dort auf den Button "Kopieren" klicken.
  • Geben Sie der Datenbank einen Namen.
  • Beim Cloud-Hosting muss anschließend ein Datenbankbenutzer erstellt werden.
  • Notieren Sie sich Datenbank-Namen, Benutzernamen, Passwort und Host.

Achtung: der Datenbankbenutzername darf in Plesk insgesamt nicht länger als 16 Zeichen sein. Von Plesk werden schon 6 Zeichen vorgegeben.

Auf dem Classic Server:

Hier können Sie Datenbanken nicht direkt kopieren, Sie müssen eine neue, leere Datenbank erstellen und dann einen Dump der Live-Datenbank importieren.

Wechseln Sie im Kundenmenü auf den Menüpunkt "MySQL Datenbanken" und klicken Sie dann links unten auf den Button "Neue Datenbank". Erstellen Sie eine neue Datenbank und notieren Sie sich Datenbank-Namen, Benutzernamen, Passwort und Host.

Nun müssen Sie von der Live-Datenbank (die Ihr Projekt aktuell verwendet) einen Dump erzeugen und diesen in die neu erstellte Datenbank importieren. Das geht am Einfachsten über die Command-Line. Loggen Sie sich über SSH auf dem Server ein, wechseln Sie in das Verzeichnis typo3cms/system/backup/databases und lassen Sie sich den Inhalt anzeigen. Entpacken Sie den aktuellsten Dump der benötigten Datenbank mit dem Befehl 

gzip -d <dateiname>

Wenn kein aktueller Dump vorhanden ist, erstellen Sie einen mit dem Befehl

mysqldump --opt --no-tablespaces -h <host> -u <benutzername> -p <datenbank-name> > mein-datenbank-dump.sql

und importieren Sie ihn dann mit 

mysql -h <host> -u <benutzername> -p <datenbank-name> < mein-datenbank-dump.sql

und anschließender Angabe des Passworts in die neu erstellte Datenbank.

Ab TYPO3 11 sollte die Datenbank auf MariaDB, mindestens MariaDB 10.4 umgestellt werden.

Wie finde ich die verwendete Datenbank heraus?
Wählen sie im TYPO3 Backend das Modul Admin Tools > Environment und klicken Sie in der Box "Environment Overview" auf "Show System Information". Dann bekommen Sie Informationen zur Datenbank-Verbindung, aber auch zur verwendeten PHP-Version angezeigt.

Eine Kopie des Projektverzeichnisses erstellen

Loggen Sie sich über SSH auf dem Server ein und wechseln Sie in das Verzeichnis typo3cms/, wo Ihr Projekt-Verzeichnis liegt. Führen Sie dann den Befehl

cp -r <verzeichnisname> <projektverzeichnis-kopie>

aus, um das Projektverzeichnis zu kopieren. Nun gehen Sie in Ihrer Kopie in das Verzeichnis typo3cms/<projektverzeichnis-kopie>/typo3conf und öffnen die Datei LocalConfiguration.php, bzw. ab TYPO3 Version 12 system/settings.php um sie zu bearbeiten. Passen Sie die Informationen der Datenbank an, indem Sie die Zugangsdaten Ihrer Datenbank-Kopie eintragen.

Eine Entwicklungs-Domain erstellen

Auf dem Cloudserver:

Klicken Sie im Kundenmenü von Plesk auf den Button "Subdomain hinzufügen" und erstellen Sie eine Subdomain von Ihrer Live-Domain, zum Beispiel von der Domain "meine-website.de" die Subdomain "v12.meine-website.de" (wenn die Zielversion TYPO3 v12 sein soll). Geben Sie im Feld "Dokumentstamm" den Dateipfad zu Ihrem kopierten Projektverzeichnis, beginnend bei dem Verzeichnis "httpdocs/" an, zum Beispiel "httpdocs/typo3cms/projektverzeichnis-kopie". Nachdem die Domain erstellt wurde, wechseln Sie auf den Reiter "Hosting und DNS" und klicken auf den Menüeintrag "Hosting". Dort können Sie (falls nötig) die richtige PHP-Version für die TYPO3 Version einstellen, die Ihre Kopie jetzt im Moment hat, und auch später nach den Upgrade-Schritten anpassen. Auch den Verzeichnispfad können Sie hier nachträglich noch ändern. Wenn Sie den Dialog "Hosting" wieder geschlossen haben, können Sie unter dem Reiter "Dashboard" ein SSL-Zertifikat für die neu erstellte Subdomain ausstellen.

Auf dem Classic Server:

Hier sollten Sie sich vorab informieren, welche PHP-Version die TYPO3 Version benötigt, auf die Sie upgraden wollen. Auf dem Classic Server erben Subdomains die PHP-Version der übergeordneten Domain, man kann ihnen keine eigene zuweisen. Wenn Sie also in Ihrem Paket keine Domain haben, die Sie auf die PHP-Version stellen können, die Ihre TYPO3 Zielversion benötigt, dann müssen Sie für den Zeitraum des Upgrades eine neue Domain bestellen. Falls Sie aber eine geeignete Domain haben, können Sie wie folgt fortfahren:

Klicken Sie auf den Menüeintrag "Domain-Verwaltung" und dann auf das Zahnrad-Symbol rechts neben der Domain, die Sie für das Upgrade verwenden wollen. Wählen Sie im sich öffnenden Menü "Subdomain hinzufügen" (Wenn die Domain aktuell nicht benötigt wird, können Sie sie auch direkt als Entwicklungs-Domain verwenden und brauchen keine Subdomain zu erstellen). Erstellen Sie dann eine Subdomain im Format "v12.meine-website.de" und geben Sie als Pfad den Dateipfad zu Ihrem kopierten Projektverzeichnis, beginnend bei dem Verzeichnis "/typo3cms/" an, zum Beispiel "/typo3cms/projektverzeichnis-kopie".

Die PHP-Version für eine übergeordnete Domain können Sie ebenfalls über das Zahnrad-Symbol rechts, mit Klick auf den Menüpunkt "Öffnen" und dann unter dem Reiter "Einstellungen" anpassen.

Autorin

Tanja Ulmer

Tanja hat mehr als 15 Jahre Erfahrung mit TYPO3 und arbeitet als Entwicklerin bei jweiland.net. 
Egal ob HTML, CSS, TypoScript oder Fluid: sie kennt sich aus mit allem, was bei der Erstellung von Webseiten benötigt wird.

Nun sollten Sie die neu erstellte Domain im Browser aufrufen und sich mit an die Domain angehängtem "/typo3" einloggen können.

Vergewissern Sie sich, dass Sie sich auch wirklich auf der Kopie und nicht auf der Live-Installation befinden, bevor Sie irgendwelche Änderungen vornehmen. Machen Sie dazu zum Beispiel eine kleine Textänderung auf einer Seite und stellen Sie sicher, dass diese Änderung NUR unter der Domain der Kopie auftaucht und nicht auf der Live-Site.

Prüfen Sie dann im Backend, je nach TYPO3 Version unter dem Modul "Site Management">"Sites" oder im TypoScript unter "config.baseURL" die eingetragene URL und passen Sie sie an Ihre Entwicklungs-Domain an. Schauen Sie auch auf der/den root-Seite/n nach möglichen Domain-Datensätzen, die geändert oder deaktiviert werden müssen.

Das Upgrade vorbereiten

Bevor das Upgrade starten kann, muss die Kopie noch ein bisschen aufgeräumt und vorbereitet werden:

  • Debugging einschalten
  • Die robots.txt anpassen
  • Tabellen bereinigen und Datenbank-Index aktualisieren
  • Extension-Liste vorbereiten
  • Upgrade-Wizard prüfen

Debugging einschalten

Komische Fehler können jederzeit auftauchen und, wenn es blöd läuft, das Backend schon direkt zu Beginn unzugänglich machen. Um dann wenigstens ein paar Infos zur Fehlerbehebung zu bekommen, ist es besser, als erstes das Debugging einzuschalten:

Wechseln Sie ins Modul "Admin Tools">"Settings" und wählen Sie "Configuration Presets". Unter "Debug Settings" können Sie die Konfiguration von "Live" auf "Debug" umstellen.

Die robots.txt anpassen

Damit die Kopie der Website während des Upgrades nicht von Robotern gescannt wird und bei Suchmaschinen in den Ergebnissen auftaucht, sollte eine entsprechende Anweisung hinterlegt werden. Sie können dazu entweder über TypoScript

page.meta.robots = noindex, nofollow
page.meta.robots.replace = 1

setzen, oder, falls schon eine Datei "robots.txt" existiert, dort folgendes eintragen:

User-agent: *
Disallow: /

 

Extension-Liste vorbereiten

Wechseln Sie ins Backend-Modul "Extensions" und wählen Sie oben links im Menü "Get Extensions" aus. Klicken Sie dann rechts auf den Button "Update now". Nun wird eine aktualisierte Liste aller im TYPO3 Extension Repository (TER) verfügbaren Extensions geladen. (Falls auf Ihrer Website der Scheduler-Task "Update extension list (extensionmanager)" aktiv ist, wird dieser Update-Vorgang im definierten Intervall automatisch ausgeführt).

Wenn Sie jetzt oben links im Menü zurück zu "Installed Extensions" wechseln, sehen Sie links neben jeder installierten Extension ein Update-Icon, sofern eine aktuellere Version existiert. Aktualisieren Sie jede Extension auf die höchstmögliche Version, die angeboten wird.

Sollte nach dem Aktualisieren einer Extension plötzlich eine Fehlermeldung auftauchen und der Zugang zur Extension Liste nicht mehr möglich sein, können Sie die störende Extension auch über die Command Line deaktivieren. Gehen Sie dazu in das Verzeichnis typo3conf, öffnen Sie die Datei "PackageStates.php" zum Bearbeiten und entfernen Sie den Abschnitt, der zu der betreffenden Extension gehört. Löschen Sie anschließend den Cache, indem Sie das Verzeichnis typo3temp/var löschen. Nun sollte das Backend, bzw. die Extension Liste wieder zugänglich sein. Die deaktivierte Extension kann auch erst einmal in diesem Zustand bleiben, möglicherweise können Sie sie nach einem Versionsschritt wieder störungsfrei aktivieren.

Sollten in der Liste Extensions sein, die mit der nächsthöheren Major-Version von TYPO3 nicht kompatibel sind, deaktivieren Sie sie. Deaktivieren Sie auch alle individuellen Extensions und Site-Packages, die nicht im TER zur Verfügung stehen, da sie höchstwahrscheinlich nach dem nächsten Major-Versions-Schritt überarbeitet werden müssten.

Upgrade-Wizard prüfen

Nachdem Extensions aktualisiert worden sind, kann es sein, dass es neue Upgrade Wizards gibt, die nun ausgeführt werden müssen. Wechseln Sie deshalb zum Backend-Modul "Admin Tools" > "Upgrade" und klicken Sie auf "Run Upgrade Wizard". Noch offene Wizards werden nun mit einer kurzen Beschreibung aufgelistet. Führen Sie alle Wizards aus. Falls Sie eine Nachfrage bekommen, ob Sie diesen Wizard wirklich ausführen wollen, und Sie sind sich unsicher, wählen Sie vorher "no, do not execute" aus und klicken Sie danach auf "Perform updates!". Dann wird der Wizard nicht ausgeführt, aber als "erledigt" markiert.

Tabellen bereinigen und Datenbank-Index aktualisieren

Nachdem die Upgrade-Wizards ausgeführt worden sind: Im Backend-Modul "Admin Tools">"Maintenance" unter "Analyze Database Structure" sollten alle Tabellen und Datenbank-Felder aktuell sein und nicht mehr benötigte gelöscht werden.

Im Backend-Modul "System">"DB Check" unter "Manage Reference Index" sollte der Index aktualisiert werden.

Das Upgrade durchführen

Wenn Sie alle oben genannten Schritte erledigt haben, kann das eigentliche Upgrade beginnen.

Führen Sie das Upgrade immer von Major-Version zu Major-Version durch, also zum Beispiel von Version 9.x.xx nach 10.x.xx nach 11.x.xx nach 12.x.xx und so weiter, da ansonsten sehr bald Probleme mit der Datenbank auftauchen werden.

Als Resultat dieser Vorgehensweise werden Sie (bei mehr als einem Versions-Schritt) den Abschnitt "Upgrade auf eine Zwischenversion bzw. die Zielversion" häufiger ausführen müssen. Da der Ablauf aber immer der gleiche ist, haben wir ihn nur ein mal aufgelistet.

  • Upgrade auf eine Zwischenversion bzw. die Zielversion
  • das Site Package anpassen

Upgrade auf eine Zwischenversion bzw. die Zielversion

Für das Upgrade müssen Sie sich wieder über die Command Line auf dem Server einloggen. Schauen Sie im Verzeichnis typo3cms, ob dort schon ein Verzeichnis oder eine .tar.gz-Datei mit der TYPO3 Version liegt, die Sie benötigen. Der Name sollte lauten: typo3_src-x.x.xx, bzw. typo3_src-x.x.xx.tar.gz.

Falls die Version noch nicht vorhanden ist, können Sie sie in das Verzeichnis herunterladen mit 

wget --content-disposition https://get.typo3.org/x.x.x

Danach müssen Sie die heruntergeladene Datei entpacken mit 

tar -zxvf typo3_src-x.x.xx.tar.gz

Nun wechseln Sie in Ihr Projektverzeichnis und passen den dort existierenden Sym-Link typo3_src an, bzw. löschen Sie ihn und erstellen Sie einen gleichnamigen mit dem neuen typo3_src-x.x.xx Verzeichnis als Ziel:

rm typo3_src
ln -s ../typo3_src-x.x.xx typo3_src

Löschen Sie anschließend den Cache, indem Sie das Verzeichnis typo3temp/var löschen.

Loggen Sie sich dann direkt ins Installtool ein mit der URL v12.meine-website.de/typo3/install.php und gehen Sie folgende Punkte in dieser Reihenfolge durch:

  • Upgrade-Wizards ausführen.
  • TYPO3 und PHP-Cache löschen (unter Backend-Modul "Maintanance" > "Flush TYPO3 and PHP Cache").
  • Analyze Database Structure ausführen. Achten Sie darauf, dass Sie zwar alle neuen Tabellen und Felder hinzufügen und ändern, aber keine Tabellen oder Felder löschen! Denken Sie daran, dass Sie Extensions vorübergehend deaktiviert haben, die diese Tabellen später beim Aktivieren vielleicht wieder brauchen.
  • Loggen Sie sich jetzt ins Backend ein und schauen Sie, ob es hier irgendwelche Fehlermeldungen gibt, z.B. wenn die Extension Liste aufgerufen wird.
  • Aktualisieren Sie die Extensions (auch die deaktivierten) auf den höchstmöglichen Stand für diese TYPO3-Version. Behalten Sie auch immer im Hinterkopf, bis zu welcher TYPO3 Version die jeweilige Extension noch kompatibel ist. Gibt es für die TYPO3 Version, auf die Sie im nächsten Schritt upgraden wollen, keine funktionierende Version dieser Extension mehr, dann deaktivieren Sie sie.
  • Prüfen Sie, ob nach dem Aktualisieren von Extensions neue Upgrade-Wizards hinzugekommen sind.
  • Lassen Sie sich nicht davon beirren, wenn aufgrund von deaktivierten Extensions oder Site-Packages Plugins oder Content-Elemente nicht gefunden werden oder im Frontend eine Fehlermeldung erscheint. Darum können Sie sich kümmern, wenn die Zielversion erreicht ist.

Wiederholen Sie den Schritt "Upgrade auf eine Zwischenversion bzw. die Zielversion" so lange, bis Sie die Zielversion erreicht haben. Achten Sie auch bei jedem Schritt darauf, ob die soeben erreichte TYPO3 Version noch mit der PHP-Version Ihrer Domain funktioniert und passen Sie diese gegebenenfalls an.

Das Site Package anpassen

Spätestens hier wird es sehr individuell, da es darauf ankommt, was die Start- und was die Zielversion von TYPO3 ist und wo sich Ihr Site Package bisher befindet bzw. ob es überhaupt eines gibt. Darum hier nur einige grundlegende Infos und Tipps zur Vorgehensweise:

  • Wenn sich das Site Package bzw. die Designvorlage in einem Verzeichnis unterhalb von fileadmin befindet, sollten Sie diese spätestens ab TYPO3 Version 11 auslagern in das Verzeichnis typo3conf/ext. Wie man ein Sitepackage für TYPO3 in diesem Verzeichnis erstellt und es dann wie eine Extension in der Extension Liste installiert, erfahren Sie auf https://docs.typo3.org/m/typo3/tutorial-sitepackage/main/en-us/
  • Um ein bestehendes Site Package an die neue TYPO3 Version anzupassen, halten Sie sich ebenfalls an das oben genannte Tutorial und überprüfen Sie vor allem die Dateien
  • Prüfen Sie, ob eingesetzte TypoScript Conditions noch funktionieren. Ab TYPO3 9.4 basiert die Condition Syntax auf der Symfony Expression Language, weshalb an vielen Stellen die alte in die neue Syntax umgeschrieben werden muss. Probleme mit Conditions erkennen Sie an einem entsprechenden Eintrag in der Log-File (Verzeichnis typo3temp/var/log).
  • Auch im Site Package verwendete ViewHelper müssen nach einem Upgrade häufig angepasst oder ersetzt werden, weil es sie so in der neuen Version nicht mehr gibt. Das erkennen Sie an einer entsprechenden Fehlermeldung im Frontend.

Wenn Sie das Site-Package (bzw. sonstige individuelle Extensions) vollständig an die neue TYPO3 Version angepasst haben, können Sie dieses wieder aktivieren, prüfen ob alles funktioniert und gegebenenfalls weitere Anpassungen vornehmen.

Extensions aus dem TER, die während des Upgrade-Prozesses deaktiviert wurden, können nun auch wieder aktiviert werden.

Nun sollte sowohl das Backend als auch das Frontend wieder einwandfrei laufen.

Typische Fehler nach einem Upgrade

Wenn Fehlermeldungen im Backend oder Frontend auftauchen, schauen Sie sich diese genau an. Auch wenn sie auf den ersten Blick kryptisch wirken, können Sie vielleicht doch Anhaltspunkte zur Ursache des Problems finden. Werden zum Beispiel Pfade zu einer Datei im Site-Package oder zu einer verwendeten Extension angegeben? Dann können Sie den Fehler in dieser Datei vielleicht beheben oder die betreffende Extension deaktivieren. Sieht die Meldung wie eine SQL-Anweisung aus? Dann muss vielleicht Analyze Database Structure noch einmal ausgeführt werden.

Fehlermeldungen werden auch sehr ausführlich in Dateien im Verzeichnis typo3temp/var/log geschrieben oder unter dem Backend-Modul "Protokoll" aufgelistet.

Nach jedem Versions-Schritt kann es zu typischen Fehlermeldungen oder Problemen kommen, die mit den Änderungen speziell in dieser TYPO3 Version oder den verwendeten Extensions zu tun haben. Hier sehen Sie eine Liste der häufigsten Probleme und wie man sie löst.

Bilder erscheinen nach dem Upgrade zu dunkel

In der Datei LocalConfiguration.php bzw. settings.php oder im InstallTool unter "GFX" den Wert für 'processor_colorspace' wie folgt anpassen:

'processor_colorspace' => 'sRGB'

Danach im InstallTool unter "Maintanance > Remove Temporary Assets" die Verzeichnisse leeren, aus denen die zu dunklen Bilder kommen.

Fehler nach TYPO3 Version

TYPO3 v12

  • PHP-Version auf >= 8.1 umstellen
  • in PHP-Dateien die Konstante 'TYPO3_MODE' 
    ​if (!defined('TYPO3_MODE')) {     die('Access denied.'); }

     ändern in 'TYPO3'

    if (!defined('TYPO3')) {     die('Access denied.'); }

TYPO3 v11

  • PHP-Version auf >= 7.4 umstellen
  • .htaccess-Datei anpassen, z.B. die Beispiel-Datei vom TYPO3 11 Core verwenden: typo3/sysext/install/Resources/Private/FolderStructureTemplateFiles/root-htaccess
  • Endung der Typoscript- und TSConfig Dateien umbenennen von .txt zu .typoscript bzw. .tsconfig
  • in PHP-Dateien die Variable $_EXTKEY durch den Verzeichnisnamen des Sitepackages ersetzen (außer in der Datei "ext_emconf.php")

TYPO3 v7

Wenn der Upgrade-Check ergeben hat, dass Ihre Website noch css_styled_content verwendet, muss spätestens beim Schritt von TYPO3 v7 nach TYPO3 v8 css_styled_content nach fluid_styled_content migriert werden.

Verwenden Sie Subparts und/oder Marker in Ihren Templates, müssen diese in Fluid-Templates umgebaut werden. Das gleiche gilt auch, wenn Sie eine veraltete Extension wie zum Beispiel templavoila, rlmp_tmplselector oder automaketemplate für das Templating einsetzen.

Aufräumen!

  • Sprachdateien aktualisieren (Installtool -> Maintenance -> Language Packs)
  • Ab PHP 7.4: Password Hashings auf Argon2id umstellen im Installtool bei den Presets
  • unter Analyze Database Structure alle nicht mehr benötigten Tabellen und Felder löschen
  • nicht mehr benötigte Extensions aus der Extension Liste entfernen
  • Presets von Debug wieder auf Live stellen

Online stellen

Wenn das Upgrade erfolgreich abgeschlossen ist und alles wie gewünscht funktioniert, können Sie in der Domainverwaltung zu Ihrer Live-Domain gehen, den Dateipfad auf Ihr kopiertes Projektverzeichnis (wo das Upgrade der Website liegt) zeigen lassen und nicht vergessen, die PHP Version der Live-Domain für die neue TYPO3 Version anzupassen. Dann loggen Sie sich in das Backend der aktualisierten Website ein und tragen unter dem Modul "Site Management">"Sites" die Live-Domain in das Feld "Einstiegspunkt" ein. Dann wechseln Sie zum Reiter "Statische Routen" und passen die robots.txt an, damit die Website von Suchmaschinen gefunden werden kann.

Aktualisiert: 03.01.2025