Contao 4.4 kopieren und umziehen

In diesem Beitrag zeige ich dir, wie du eine bestehende Contao 4.4 Installation so einfach wie möglich auf einen anderen Server umziehst.

In den Anfängen von Contao war es denkbar einfach, eine bestehende Installation auf einen neuen Server umzuziehen. Man nahm sich einfach den kompletten Projektordner und transferierte ihn auf den neuen Server. Danach musste man nur noch die Datenbank kopieren, die Verbindungsdaten zur Datenbank anpassen und schon war man fertig.

Das funktionierte auch mit späteren Contao 3 Versionen und der Contao Paketverwaltung in den meisten Fällen recht gut, abgesehen von vielleicht ein paar Problemen mit unterschiedlichen PHP-Versionen.

Aber seit Contao 4 ist alles anders. Die Ordnerstruktur hat sich geändert und statt richtigen Ordnern sieht man an einigen Stellen nur noch Symlinks auf andere Verzeichnisse. Hinzu kommt, dass FTP-Programme ganz unterschiedlich mit Symlinks umgehen. Die Einen ignorieren Symlinks, die Anderen machen daraus einen richtigen Ordner. Weder die eine noch die andere Einstellung führt allerdings zum Ergebnis.

Die gute Nachricht: Dank Contao 4 ist ein Umzug einer Contao Installation auf einen anderen Server einfacher und schneller denn je. Man muss nur wissen wie. Gestrichen, damit dieser Artikel nicht ständig mit neuen Kommentaren ergänzt wird, die diesen Absatz zitieren, um ihm zu widersprechen.

Ich konzentriere mich in dieser Anleitung auf Contao ab Version 4.4. Wenn ich also von Contao spreche, meine ich mindestens Contao 4.4.X. Warum? Seit Contao 4.4 gibt es den Contao Manager, mit dem sich auch ohne tieferes Verständnis der Kommandozeile eine Contao Installation umziehen oder kopieren lässt. Außerdem wurde mit Contao 4.4 beschlossen, zukünftig nur noch die Managed Edition weiterzuentwickeln. Ob diese Anleitung auch für die Standard-Edition funktioniert habe ich nicht geprüft.

Nun aber los. Was musst du beim Umzug einer Contao 4.4 Installation auf einen neuen Server beachten?

Datenbank kopieren

Hier bleibt alles beim Alten. Du exportierst die MySQL-Datenbank auf dem bestehenden Server und importierst sie auf den neuen Server.

Contao 4.4 unter Verwendung des Contao Managers umziehen

Der Contao Manager macht die Installation von Contao denkbar einfach. Allerdings ist es mit dem Contao Manager sehr wichtig, dass du vor der Contao-Installation keine anderen Daten auf dem neuen Server installiert hast. Ansonsten bricht der Contao Manager die Einrichtung ab und verlangt von dir, dass du das Projektverzeichnis erstmal wieder leerst.

  1. Kopiere den Contao Manager in /web und richte ihn mit Benutzername und Passwort ein
  2. Installiere Contao über den Contao Manager. Den Vorschlag, das Installtool im Anschluss auszuführen solltest du einfach ignorieren!
  3. Stattdessen kopierst du die composer.json von deinem alten Server in das Projektverzeichnis des neuen Servers und führst den Contao Manager erneut aus.
  4. Kopiere nun den Ordner /app/config/ auf den neuen Server und ändere in der parameters.yml den Zugang zur neuen Datenbank
  5. Im Ordner /system/config/ kopierst du die localconfig.php und sofern vorhanden auch langconfig.php, dcaconfig.php usw. in den gleichnamigen Ordner auf dem neuen Server.
  6. Solltest du noch Contao Erweiterungen manuell installiert haben, kopiere diese in das Projektverzeichnis unter system/modules/
  7. Dateien aus den Ordnern files und templates kopierst du ebenfalls in ihre Pendants auf dem neuen Server.
  8. Rufe erneut den Contao Manager auf und lasse den „Cache neu erstellen“
  9. Überprüfe im Installtool die Datenbank, aktualisiere sie wenn nötig (eigentlich nur nach Contao- oder Extension-Updates notwendig)
  10. Melde dich in Contao an, gehe in die Systemwartung und wähle dort „Symlinks neu erstellen“

Wenn du diese Schritte einhälst, solltest du jetzt das Frontend öffnen und sehen können.

Contao 4.4 unter Verwendung der Kommandozeile umziehen

Für diese Anleitung solltest du sicher mit der Kommandozeile umgehen können. Die Installation von Composer wird vorausgesetzt. Andernfalls verwende lieber die obige Anleitung zur Installation über den Contao Manager.

Die Kurzfassung:

  1. Kopiere die composer.json in dein Projektverzeichnis
  2. Den Ordner app/config/ auf den Server kopieren und in der parameters.yml die neue Datenbank hinterlegen
  3. Im Ordner system/config/ die localconfig.php und ggf. auch langconfig.php, dcaconfig.php etc. auf den Server kopieren.
  4. Solltest du noch Contao Erweiterungen manuell installiert haben, kopiere diese in das Projektverzeichnis unter system/modules/
  5. Dateien aus den Ordnern files und templates in die Ordner im Projektverzeichnis in files und templates kopieren
  6. Contao über composer update installieren lassen
  7. Im Installtool die Datenbank überprüfen und ggf. aktualisieren.

Danach solltest du jetzt das Frontend öffnen und sehen können. (Vielen Dank an Spooky für die optimierte Version).

Typische Probleme beim Umzug einer Contao 4 Installation

Wenn Contao nach dem Umzug nicht funktionert, hat das häufig einen der genannten Gründe:

1. Deine Dateien und Ordner sind auch nach dem neu erstellen der Symlinks nicht erreichbar

Gehe in die Dateiverwaltung und prüfe, ob die Ordner auf öffentlich gestellt sind. Öffentliche Ordner werden in Contao über die Datei .public im Verzeichnis öffentlich gemacht. Da diese Datei versteckt ist, hast du sie u.U. nicht auf den neuen Server übertragen.

2. Die Installation über den Contao Manager kann nicht abgeschlossen werden

Häufigste Ursache ist eine Inkompatibilität des Hosting mit Contao 4.4. Auf Github findest du eine Liste der kompatiblen Hoster, die den Contao Manager unterstützen.

3. Fehlermeldung „Die Installation ist unvollständig“

Dieser Fehler taucht auf, wenn die config.yml und/oder die localconfig.php nicht auf dem Server vorhanden sind. Prüfe noch einmal die Ordner app/config/ und system/config/ ob alle Dateien vorhanden sind.

4. Scripte, Bilder, Stylesheets von Erweiterungen werden nicht geladen

Die Symlinks in web/system/modules/ wurden nicht angelegt. Gehe im Contao Backend in Systemwartung und lasse die Symlinks neu erstellen. Alternativ kannst du im Contao Manager die Pakete aktualisieren, die Symlinks werden dann ebenfalls neu angelegt.

5. Das Installtool schlägt größere Datenbank-Änderungen vor

Im Installtool sollte es eigentlich nur Änderungen nach einem Contao- oder Extension-Update geben. Sollten hier Tabellen und Spalten zum Löschen auftauchen, die im Zusammenhang mit Erweiterungen stehen, hast du ggf. nicht alle Erweiterungen auf den Server kopiert.

Fazit:

Wenn man die Reihenfolge der Schritte beachtet und der Versuchung widerstehen kann, nach jedem Schritt das Frontend zu prüfen, dann lässt sich Contao 4 innerhalb von 5–10 Minuten auf einem neuen Server umziehen. Der große Vorteil von Contao 4 ist, dass man nicht mehr alle Dateien und Ordner auf den Server kopieren muss, da in der composer.json alle Informationen zu Contao und den Abhängigkeiten hinterlegt sind.

Du musst im Anschluss nur noch deine individuellen Dateien und Einstellungen auf den Server übertragen und bist danach fertig.

Hast du noch Fragen oder Anmerkungen zum Umzug einer Contao 4 Installation auf einen neuen Server? Schreib es in die Kommentare!

Tipp:

Bei der Contao Academy gibt es 3 Videos, in denen dir Christian Schritt für Schritt zeigt, wie du eine Contao 4.4 Installation umziehst.

Zurück

Einen Kommentar schreiben

Kommentar von karsten |

Hallo Dennis,

danke für die feine Zusammenstellung!

Zwei Fragen habe ich zum Umzug per Komandozeile:

  • "7. Über Composer den Cache leeren" - warum ist das (an der Stelle) wichtig?
  • "9. Über Composer die Symlinks neu erstellen" - muss das über Composer laufen oder kann ich das nicht auch einfach übers BE machen: System > Systemwartung > Symlinks neu erstellen?

Viele Grüße aus Münster!

Antwort von Dennis

Moin Karsten,

gute und berechtigte Fragen. Hier meine Antworten:

  • Zu Schritt 7: Wenn du in Schritt 5 noch manuell Erweiterungen in system/modules kopiert hast, dann solltest du den Cache leeren, damit sie im nächsten Schritt (Installtool) geladen werden und in der Datenbank berücksichtigt werden
  • Das geht genauso. Dachte nur, wenn man noch in der Konsole ist, geht es hier schneller bzw. ohne Anmeldung im Backend.

Kommentar von Oliver |

Der /src Ordner muss auch manuell kopiert werden (falls vorhanden). Ich komme eigentlich bei keiner Seite ohne spezielle Anpassungen aus, die ich in einem eigenen Modul packe. Und die landen jetzt ja in einem bzw. mehreren Bundles unter /src. Nur der vollständigkeitshalber.

Antwort von Dennis

Moin Oliver,

vielen Dank für die Ergänzung!

Kommentar von Schnippel |

Hi
ich hab beim Abarbeiten der Schritte ein Problem beim Installations-Tool. Hier die genaue Fehlerbeschreibung des Problems

Wie verfahre ich weiter?

Antwort von Dennis

Moin Schnippel,

habe deinen Kommentar freigeschaltet, für den Fall das noch andere Nutzer das Problem haben.

Kommentar von Martin |

Klasse, endlich mal eine strukturierte, nachvollziehbare Hilfe für den Contao 4.4 Umzug. Was hab ich mir zu diesem Thema schon den Wolf gesucht. Danke Dennis!

Kommentar von Georg |

"Dank Contao 4 ist ein Umzug einer Contao Installation auf einen anderen Server einfacher und schneller denn je. "

... da bin ich mir nicht ganz so sicher :)

Antwort von Dennis

Ich bleibe dabei. Wenn man sich einmal ausgiebig mit dem Contao 4 beschäftigt hat und die Serveranforderungen gegeben sind, dann ist es deutlich schneller als mit Contao 3.5. 

Kommentar von Thomas |

Naja, einfach ist relativ.
Ich hab gestern Nacht eine Installation nach der Beschreibung (Manager) erfolgreich umgezogen. Jetzt stehe ich bei einer Installation, die beim letzten Schritt (Aufruf des Backends für die Symlinks) eine weiße Seite ausgibt. Selber Quellserver und Zielserver. Jemand eine Idee?

Antwort von Dennis

Die Symlinks werden auch neu angelegt, wenn du im Contao Manager eine Aktualisierung durchführst. Vielleicht hilft das als Workaround. 

Weitere Ideen:

  • gleiche PHP-Version eingestellt?
  • Cache im Contao Manager geleert?
  • Sind aktuell Symlinks vorhanden oder sind es u.U. richtige Ordner? Symlinks können nicht erzeugt werden, wenn richtige Ordner mit dem gleichen Namen vorhanden sind.

Kommentar von Rally |

Vielen Dank für die klare und gut aufgebaute Anleitung! Echt mal wieder klasse von Euch!
...aber:
"... auf einen anderen Server einfacher und schneller denn je?"
Also das wäre ja mal ein Ding, das als Wettbewerb zu starten: Welche Installation ist schneller...
Ich würde mein Geld nicht auf Contao 4 wetten... ;-)

Antwort von Dennis

Es kommt natürlich auch drauf an, wie man Contao 3 umzieht. Wenn du einfach den kompletten Projektordner nimmst und auf den neuen Server kopierst, dann bin ich mir ziemlich sicher, dass der Contao 4 Umzug schneller ist. Wenn du Contao 3 über die Kommandozeile installierst/kopierst, dann sieht das schon anders aus.

Kommentar von Rally |

...also ich hatte mit Contao4 bislang eher frustierende Erlebnisse... irgendwas war immer.
Allerdings hat meine letzte Installation reibungslos und zügig geklappt.
Beim Versuch Extensions mit Hilfe des Managers zu installieren war allerdings schon wieder Ende der Fahnenstange...

Kommentar von Dominik |

Danke für die Anleitung nur "Dank Contao 4 ist ein Umzug einer Contao Installation auf einen anderen Server einfacher und schneller denn je."
kann ich nicht nachvollziehen :/

Bei Contao 3.5 war es: Verzeichnis hochladen; Datenbank Importieren; Install.php aufrufen um Zugang zur Datenbank zu bekommen. Mehr war nicht zu tun.

Kommentar von Peter |

Danke für diese verständliche Anleitung! Das klappt wunderbar...

Kommentar von Fred |

Also das neue Contao ist im vergleich zu 3.5 wirklich kompliziert auf einen Server zu migrieren aber deine Anleitung hilft gut.

Ich habe nur eine Frage, installiert man Erweiterungen im Contao Manager zwischen Schritt 2 und 3 oder 3 und 4?

Antwort von Dennis

Ich habe nur eine Frage, installiert man Erweiterungen im Contao Manager zwischen Schritt 2 und 3 oder 3 und 4?

Wenn du die composer.json kopiert hast und den Contao Manager erneut ausführst, werden alle Erweiterungen in der composer.json installiert. So gesehen also nach Schritt 3.

Kommentar von Joachim |

Danke für die Beschreibung.
Allerdings kann ich "Dank Contao 4 ist ein Umzug einer Contao Installation auf einen anderen Server einfacher und schneller denn je." überhaupt nicht zustimmen.

Der Umzug einer 3.x war ein Klacks, sogar bei einer Live-Seite mit wenigen Sekunden Unterbrechung machbar. Das sieht mit C4 jedoch ganz anders aus.

Wir sind 2007 zu Contao (TypoLight) gewechselt, weil damals Typo3 zu komplex wurde. Jetzt sind wir wieder an der gleichen Stelle. Das ist bedauerlich.

Bitte addieren Sie 7 und 3.

Immer auf dem Laufenden bleiben

Für den Newsletter anmelden

Der Newsletter erscheint 1x im Monat