piwik Matomo

Manuelles TYPO3-Update – Tutorial

Wenn Sie einen Major-Release-Wechsel durchführen, oder ein älteres TYPO3-System aktualisieren wollen ist ein manuelles TYPO3 Update oft sinnvoll. Hier erkläre ich, wie man das macht.

Es gibt verschiedene Gründe für ein manuelles TYPO3-Update. Wenn in Ihrem Hosting zum Beispiel kein Composer verfügbar ist und bzw. oder Sie nicht via SSH auf Ihren Webspace zugreifen können, bleibt noch das Update über das Installtool. Wenn - wie im Privat-Plus-Tarif bei allinkl - auch das Entpacken eines *.tar.gz-Archivs nicht möglich ist, können Sie Ihr TYPO3-System nur noch manuell updaten.

Vorab

Sicherheit

Auf jeden Fall ist zu empfehlen vor dem Update die Dateien inkl. Datenbank abzusichern und diese auf einem sicheren Datenträger zu speichern.
Ich mache ein Update von z.B. Version 11/12 oder 13 auf 14 niemals im Live-System sondern immer in einer 1:1-Kopie der Seite, oft unter einer Subdomaine (z.B. dev… oder update…. statt www…). Dann kann die Live-Site weiter laufen und das Update stört nicht.

Aufräumen

Je älter das System ist, desto eher findet man bei Inhalten oder Erweiterungen veraltetes oder nicht mehr benötigtes. Ein Update ist also die beste Gelegenheit das System in Ruhe zu bereinigen. Alle TYPO3 Erweiterungen, die nicht installiert sind bzw. nicht benutzt werden sollten im Erweiterungsmanager deinstalliert, und am Besten auch gleich gelöscht werden.

Extension aktualisieren

Aktualisieren Sie alle verbliebenen lokalen Extensions (unter /typo3conf/ext/<ext_key>/) auf die letzte mit Ihrer TYPO3-Version kompatiblen Version. Dann scheuen Sie sich die Datei „ext_emconf.php“ an. Dort stehen unter „constraints/depends/typo3“ die TYPO3 Versionen, mit denen diese Erweiterung kompatibel ist. Bei manchen steht so etwas „12.4.0-13.99.99“, dann sollten Sie Ihr System problemlos z.B. von Version 12 auf 13 updaten können. Steht dort „nur“ „12.4.0-12.4.99“, wird Sie wahrscheinlich nach dem Update Fehler auswerfen. 

Datenbank auf den neuesten Stand bringen

Rufen Sie im Backend unter “Verwaltungswerkzeuge” die “Aktualisierung auf. Der ”Upgrade Wizard" überprüft alle Tabellen der Datenbank auf eine vollständige Struktur und fügt evtl. fehlende Felder oder Tabellen ein. Zudem werden dort ggfs. auch von gut programmierten Extensions Aktualisierungen durchgeführt.

Danach sollten Sie noch unter "Wartung" einmal 

  • Die Sprachdateien aktualisieren (Manage Language Packs)
  • Die temporären Datenbankinhalte löschen (Clear Persistent Database Tables).
    Das löscht nicht den Cache der Seiten.
    Wenn Sie dabei auch die Tabelle "Backend user sessions" leeren fliegen Sie aus dem TYPO3-Backend. Sie können sich zwar wieder einloggen, aber das ist meistens unnötig.
  • Die temporären Dateien löschen (Remove Temporary Assets).
    Wenn Sie hier auch die skalierten Bilder unter fileadmin/_processed_/ löschen wird das Frontend unter Umständen erstmal sehr langsam, denn damit müssen alle skalierten Bilder von TYPO3 neu erstellt werden.
  • Die Datenbank-Struktur aktualisieren (Analyze Database Structure)
    Hier werden alle Tabellen der Datenbank auf Konstistenz überprüft und gegebenenfalls korrigiert. Anders als bei der Aktualsierung werden vor allem nicht mehr benötigte Tabellen oder Tabellen-Felder rigoros gelöscht und/oder umformatiert. Deshalb sollte man vorher immer die Datenbank aktualisieren damit Änderungen in den Extension-Datenbanken noch durchgeführt werden können. Manchmal gehört dazu dann auch ein Verschieben von alten auf neue Tabellen. Hier werden diese alten Tabellen dann entfernt.
  • Referenz-Index aktualisieren
    In der Tabelle sys_refindex werden alle Verknüpfungen innerhalb der einzelnen Datensätze referenziert. Ist zum Beispiel ein Bild verlinkt so steht diese Verknüpfung in der Tabelle sys_refindex.  Klicken Sie unter „System → DB Check/Referenz-Index verwalten“ auf „Referenzindex aktualisieren“ (Ab Version 14 ist das unter "Wartung" zu finden.). 
    Bei größeren Systemen kann dieser Prozess eine Weile dauern. Sollte er mit einem „internal Server Error“ (500) abbrechen, kann es daran liegen, dass ihre PHP-Ausführungszeit (max_execution_time) zu kurz eingestellt ist. Die sollte bei einigermaßen aktuellen TYPO3 Versionen auf 240 (Sek.) stehen. Je nach Server kann das mit
    php_value max_execution_time 240
    in der Datei .htaccess im Root-Verzeichnis ihrer TYPO3 Installation angepasst werden.
     

Die Sourcen tauschen

  1. Laden Sie die Sourcen des Ziel-TYPO3-Systems herunter, entpacken Sie das Archiv und laden es mit einem FTP-Programm (z.B. Filezilla) auf den Server. 
    Ich lade immer den ganzen Ordner typo3_src-<die TYPO3-Version> direkt neben die zu aktualisierende TYPO3-Instanz (da sollten dann auch fileadmin, typo3conf und typo3temp liegen). Dann lege ich ein leeren Verzeichnis mit der alten Versionsnummer direkt daneben um dann die Verzeichnisse typo3 & vendor (seit 7.6) sowie alle Dateien außer evtl. einem favicon.ico und irgendwelchen google-Verfizierungsdateien.html und ähnliches in dieses Verzeichnis zu schieben. 
  2. Schieben Sie alle Dateien und Verzeichnisse aus den Sourcen der neuen Version in das aktuelle Verzeichniss. Da sollte es dann genauso aussehen wie vorher.
  3. Dann schieben Sie noch eine aktuelle .htaccess-Datei in das Root-Verzeichnis. Die befindet sich seit der Version 9.5 nicht mehr im Root der Sourcen, sondern unter typo3/sysext/install/Resources/Private/FolderStructureTemplateFiles/ und nennt sich dort "root-htaccess". Diese Datei sollte am Ende im Root-Verzeichniss Ihrer Website unter “.htaccess” liegen. In dieser Datei taucht bis TYPO3 13 relativ am Anfang noch der Teil
    #<FilesMatch "\.js\.gzip$">
    #    AddType "text/javascript" .gzip
    #</FilesMatch>
    #<FilesMatch "\.css\.gzip$">
    #    AddType "text/css" .gzip
    #</FilesMatch>
    #AddEncoding gzip .gzip
    auf. Hier sollten Sie alle Rauten (#) am Anfang jeder Zeile entfernen. Es ist davon auszugehen, dass in Ihrem TYPO3-System eine Komprimierung eingeschaltet ist, die z.B. CSS und Javascript-Dateien im typo3temp-Verzeichnis komprimiert speichert. Mit diesem Teil wird diese Komprimierung richtig erkannt und korrekt aufgelöst.
  4. Nun verfahren so ähnlich mit den Erweiterungen, für die es nur Sourcen für die alte oder die neue TYPO3-Version gibt. Hier lösche ich normalerweise einfach die alten Soucen im Extension-Verzeichnis (unter /typo3conf/ext/<extension_key> - z.B. alles unter /typo3conf/ext/news/), lade die neuen Sourcen von der Repository herunter, entpacke diese lokal und schiebe die neuen Sourcen in dasselbe Verzeichnis.

Das Installtool

  1. Löschen Sie alles unter typo3temp. Seit der Version 6.2 gibt es im Installtool eine Überprüfung, bzw. Korrektur unter „Folder structure“: mit „Try to fix…“ werden hier alle notwendigen Verzeichnisse und Dateien erstellt.
  2. Dann rufen Sie am Besten das Installtool auf (https://Ihre-Domaine.de/typo3/install/ oder https://Ihre-Domaine.de/typo3/install.php). Hier werden Sie nun aufgefordert die Datei ENABLE_INSTALL_TOOL im Verzeichnis /typo3conf anzulegen. Schauen Sie hier, dass die Datei keine Leerzeichen am Anfang oder Ende hat und auch keine Dateiendung (".txt" oder ähnliches) hat. Der Inhalt der Datei ist irrelevant, sie kann auch einfach leer sein. 
    Wenn Sie nun das Installtool erneut aufrufen, sollte TYPO3 nach dem Installtool-Passwort fragen. Loggen Sie sich in das Installtool ein und gehen Sie zunächst auf “Maintenance” um den Autoload-Ordner zu aktualisieren (Rebuild PHP Autoload Information) und den Chache zu löschen (Flush TYPO3 and PHP Cache). Spätestens jetzt sollten Sie ganz oben links die neue TYPO3-Version sehen.
  3. Gehen Sie nun auf Upgrade→ Upgrade Wizard. Hier werden Sie nun Schritt für Schritt durch den Aktualisierungsvorgang geleitet. Am Ende sollte dort ein „Progress of upgrade wizards: … 100%“ oder “28 of 28 upgrade wizards executed” stehen.
  4. Nun können Sie wieder auf “Maintenance” gehen um die Datenbank-Tabellen zu aktualisieren. Achten Sie bei den angegebenen SQL-Statements auf die bei Ihnen installierten Extensions. Diese sollten unverändert bleiben. Sollen hier Tabellen in „zzz_deleted_[Tabellenname]“ umbenannt werden, die Sie eindeutig als die zu einer installierten Erweiterung gehörig erkennen, dann wird diese im Moment nicht installiert sein. Installieren Sie also die TYPO3-Erweiterung erneut im Erweiterungsmanager, wenn Sie wissen, dass Sie diese Erweiterung benutzen. Erst wenn dort so etwas wie “Database schema is up to date. Good job!” steht sollten Sie das Backend aufrufen (z.B. mit dem Button links “Switch to Backend”. 

Aktualisiertes TYPO3-System testen

  1. Schauen Sie, ob im Erweiterungsmanager Extensions upzudaten sind.
  2. Testen Sie Ihre Seite (im Backend und Frontend). Hier reicht es nicht unbedingt Seiten aufzurufen. Sie sollten auch wichtige Funktionen der Seite prüfen, z.B. das Bearbeiten eines Inhaltselements/Datensatzes inklusive Speichern und überprüfen der Änderung im Frontend.
  3. Um den Neuaufbau des Caches zu beschleunigen, können Sie die komplette Site einmal mit dem LINUX-Befehl „wget -r -Dwww.ihre-domaine.tld www.ihre-domaine.tld“ laden.
  4. Wenn alles richtig funktioniert, können Sie die alte TYPO3-Version, die Sie ja unter „typo3_src-alt“ o.ä. gespeichert haben, und das nun leere Verzeichnis der neuen Version „typo3_src-<Versionsnummer>“ löschen.

Ein paar Erfahrungen, die ich beim Update auf TYPO3 13.4 gemacht habe:

  • Hier meckert TYPO3 u. U. über die Backend-Cache-Einstellungen (Invalid cache backend option „compression“ for backend of type „TYPO3\CMS\Core\Cache\Backend\SimpleFileBackend“). Bei mir hat es geholfen, in der Datei typo3conf/system/settings.php alles unter SYS => caching zu löschen.
  • Bei einem Kunden hatte ich einen zusätzlichen Dateispeicher außerhalb des TYPO3-Verzeichnisses eingerichtet. Nach dem Update konnten die Verzeichnisse in der Dateiliste nicht angezeigt werden (Fehlermeldung: „Fehler beim Laden der Navigation“. Hier habe ich auf dieser TYPO3-Seite den Hinweis gefunden, dass man hier in der Konfiguration den Pfad unter [BE][lockRootPath] eintragen muss.

Sie haben dazu Fragen?

Dann nehmen Sie gerne Kontakt mit mir auf

Kontaktformular  +49 40 4327 3227  WhatsApp  E-Mail schreiben