Contao-Update von Version 3.5 auf 4.4

von Oliver Richter (Kommentare: 0)

Da für die letzte Long-Time-Support-Version (LTS) von Contao 3.5 im Mai 2019 die letzten Sicherheitspatches bereit gestellt werden (siehe Contao-Release-Plan), ist ein Update von noch vorhandenen alten 3.5-er Versionen zwingend erforderlich.
Hier möchte ich daher einen möglichen Weg für ein solches Update von Contao-3.5 auf die aktuelle LTS-Version Contao-4.4 mit Hilfe des Contao-Managers aufzeigen. 

1. Voraussetzungen

  • Eine Installation von Contao 3.5 mit oder ohne Erweiterungen. Ich würde zudem immer dazu raten, auf die aktuellste bzw. letztmögliche Version von Contao 3.5 und der Erweiterungen zu updaten und nicht benötigte Erweiterungen vorab zu deinstallieren. Um zu prüfen, ob es die bisher verwendeten Erweiterungen auch für Contao 4.4 gibt, kann man die Paketlistensuche unter https://packagist.org/ verwenden.
  • Erfüllen der Systemvoraussetzungen zur Installation von Contao 4.4. Zum Live-Test auf Ihrem Server lässt sich der Contao-Check nutzen.
  • Zugang zu Ihrem Webhoser-Backend inkl. einem Datenbanktool wie phpMyAdmin und einem SFTP-Client- oder Shell-Zugang.
  • Anlegen eines Backups der bisherigen Contao-Installation: Datenbank in Form einer (möglichst komprimierten) SQL-Datei & komplettes Dateisystem ihrer bisherigen Contao-Installation). 

2. Contao-4.4-Testumgebung anlegen

  • Erstellen Sie eine Testumgebung für Contao 4.4. Das heißt, zuerst eine neue, leere Datenbank anlegen, sowie einen Ordner auf dem Webspace, der sich außerhalb der bisherigen Contao-Installation befindet. Darin wird ein Unterordner /web erstellt, auf den eine neu anzulegende Subdomain z.B. new.domain.de direkt zeigt. 
  • Als nächstes gilt es, den Contao-Manager von https://contao.org/de/download.html herunter zu laden und damit Contao 4.4. installieren zu können. 
  • An die soeben herunter geladene Datei contao-manager.phar die Endung .php anhängen und sie anschließend mit einem SFTP-Programm oder SSH-Client in dem Ordner /web ablegen.
  • Die abgelegte Datei nun direkt aufrufen über die oben erstellte Subdomain, z.B. https://new.domain.de/contao-manager.phar.php und den Anweisungen zur Installation von einer aktuellen und vollständigen Version von Contao 4.4 folgen. 
  • Am Ende der Installation wird zum Aktualisieren der Datenbank mit Install-Tool aufgefordert. Bevor Sie nun fortfahren, importieren Sie vorher mit z.B. phpMyAdmin die Tabellen ihrer Contao-3.5-Datenbank vollständig in die neu erstellte und noch leere Datenbank für Contao 4.4.
    Aktualisieren Sie anschließend die neue Datenbank mit dem Install-Tool. Führen Sie dabei alle Updates durch, nur sollten Sie vorerst keine Spalten oder Tabellen löschen (drop), insbesondere von bisher verwendeten Erweiterungen.
  • Kopieren Sie mit einen SFTP-Programm oder SSH-Client den Ordner /files und /templates (inkl. deren Inhalte) aus Ihrer alten Installation in die neue Testumgebung, direkt in den Ordner /web.
  • Prüfen Sie nun das Frontend (Webseite) und Backend (Contao). Bei Fehlern werfen Sie zur Auswertung einen Blick in die Log-Datei(en) unter /var/logs/. Im besten Fall können Sie nun schon Ihre Webseite sehen, wahrscheinlich sind aber noch nicht alle Ressourcen verfügbar und es ist noch etwas Feinjustierung notwendig. 

3. Testumgebung anpassen

  • Erscheint die Meldung, kein Startpunkt gefunden oder ähnliches, müssen zur fehlerfreien Anzeige der Webseite im Backend unter Layout - Seitenstruktur - Startpunkt der Webseite im Bereich Domainname der Eintrag entfernt oder aber auf Ihre oben angelegte Subdomain oder weitere Parameter dort eingestellt werden.
  • Beim oder vor dem ersten Aufruf der Webseite rate ich zudem dazu im Backend unter System - Systemwartung die Daten bzw. den Cache zu leeren.
  • Alle Ordner innerhalb von /web sind nach der Installation zuerst geschützt und nicht öffentlich zugänglich. Das betrifft also auch oben kopierten Ordner /files und /templates mit ihren Dateien wie Bilder, Dokumente, ggf. CSS- oder JavaScript-Dateien darin. Diese Ordner muss man manuell mit Hilfe des Dateimanagers (System - Dateiverwaltung) durch Bearbeiten der einzelnen Ordner veröffentlichen. Manuell können Sie dies bewirken, in dem Sie in den zu veröffentlichen Ordner eine leere Datei mit dem Namen .public ablegen, zum Beispiel mit Hilfe eines SFTP-Programms.
  • In Contao 4.4 gibt es einige Änderungen, auch kleinere am Markup der Modul-Templates. So ist zum Beispiel das Navigationstemplate leicht angepasst, die Formulartemplates etc. Es ist daher eventuell nötig, die bisherigen Stylesheets (CSS) etwas an die neue Umgebung anzupassen.
    Wenn Sie in der alten Installation viele individuell angepasste Templates verwendet haben, kann es nötig sein, diese jetzt manuell anzupassen und mit den aktuellen Templates von Contao 4.4 abzugleichen.
    Übrigens: Das Captcha-Formularelement ist bei Contao 4.4 nicht immer sichtbar. Dies ist so gewollt und entspricht der Funktion des Honeypot-Spamschutzes, siehe https://contao.org/de/news/contao_4-4-0.html.
  • Bedenken Sie, dass eventuell noch Anweisungen von der bisheren .htaccess-Datei in die neue im Ordner /web übernommen werden (z.B. Weiterleitungen) müssen?
  • Bei mir waren beim Update hin und wieder einige globale Einstellungen aus System - Einstellungen nicht übernommen wurden aus der alten Version (Datumsformat, Komprimierung des Markups und der Scripte, etc). Diese habe ich manuell nachgetragen in der neuen Version unter System - Einstellungen.
    Übrigens: Sofern man SMTP aktiviert hatte, muss man auch hier die Konfiguration in /app/config/parameters.yml manuell eintragen, da es in Einstellungen im Contao-Backend leider nicht mehr konfiguriert werden kann. So in etwa sollte dies dann aussehen, wahrscheinlich sind schon Einträge in der Datei parameters.yml vorhanden und Sie sollten die folgenden einfach anfügen:
parameters:
    mailer_transport: smtp
    mailer_host: email.server.de
    mailer_user: username
    mailer_password: password
    mailer_port: 25
    mailer_encryption: yourpassword

4. Erweiterungen einbinden

Ab hier sollte die aktualisierte Webseite nun funktionieren. Sofern Sie Erweiterungen verwendet haben in der alten Version, geht es nun darum, diese in möglichst aktualisierter Form auch weiterhin zu nutzen.

  • Rufen Sie den Contao-Manager auf via http://new.domain.de/contao-manager.phar.php und suchen und installieren Sie die Erweiterungen, die Sie auch schon in der alten Version installiert waren. Beim anschließendem Aktualisieren der Datenbank über das Install-Tool gehen Sie abermals behutsam vor und aktualisieren Sie nur die zur soeben installierten Erweiterungen gehörigen Tabellen und vermeiden Sie ein allgemeines Löschen (drop) der Tabellen der anderen bisher verwendeten Erweiterungen.
    Sofern Sie eine aktuelle Erweiterung für Contao 4.4 ihrer bisher unter Contao 3.5 genutzten Erweiterungen gefunden haben, sollte so die Übernahme der alten Daten problemlos funktionieren.
  • Installieren Sie stets nur eine Erweiterung in einem Schritt bzw das erleichtert das Finden eines Fehlers.
  • Sollte es keine aktuelle Version der bisher genutzten Erweiterung für Contao 4.4 geben, kopieren Sie den Modulordner der jeweiligen Erweiterung von der alten Installation aus /system/modules/ nach /web/system/modules/ der neuen Installation. Rufen Sie die den Contao-Manager auf und leeren Sie den Cache. Rufen Sie anschließend das Install-Tool auf aktualisieren Sie die Datenbank. Lassen Sie auch hier wieder nur die zur Erweiterung gehören Tabellen anpassen, wenn Sie darauf hingewiesen werden.

Ich freue mich über Anmerkungen, Korrekturhinweise, Kommentare. 

Zurück

Einen Kommentar schreiben

Bitte rechnen Sie 4 plus 2.

Bachten Sie: Für die Zuordnung Ihrer Nachricht werden die hier anzugebenden Daten Name, E-Mailadresse, Ihr Kommentar gespeichert. Sofern Sie den Wunsch der E-Mail-Benachrichtigung angegeben haben, wird aufgrund technischer Notwendigkeit auch dieser Wert gespeichert. Durch Absenden des Formulars erklären Sie sich damit einverstanden. Alternativ kontaktieren Sie mich bitte über meine E-Mailadresse oder Telefon.
Detaillierte und weitere Hinweise, insb. zum Widerrufsrecht finden Sie in der Datenschutzerklärung.

Sie befinden Sich in der Detailansicht eines Blog-Eintrags.

Um alle Blog-Einträge zu sehen, wechseln Sie bitte zur Nachrichten-Übersicht

Wie kann ich Ihnen helfen?

Sie erreichen mich über mein Kontaktformular