Tutorial: Eine Contao 4 Installation kopieren und umziehen

In diesem Beitrag zeige ich dir, wie du eine bestehende Contao 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/ (ab Contao 4.8 nur noch /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/ (bzw. /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).

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.

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 Probleme eine Contao Installation umzuziehen? Mit unseren Support-Paketen bieten wir dir Hilfe zur Selbsthilfe an.