Contao 4

Contao 4 ist inzwischen schon in der Version 4.5 erschienen und ich habe mich entschieden, einige Contao-Seiten der Version 3.5 umzustellen.

Seit der Version 4.4 ist der Contao Manager dabei, sodass man nicht mehr über die Kommandozeile die Befehle eingeben muss, was sicherlich eine Hürde für Webdesigner und Nutzer, die eher vom Design als vom Programmieren kommen, gewesen sein könnte. Leider sucht man ganz konkrete Anleitungen immer noch vergeblich, es gibt Foreneinträge und ein Video von Leo Feyer (vom Contao-Nordtag im März 2017 noch zur Version 4.3 und mit Kommandozeile), in dem er eine verbesserte Dokumentation verspricht. Nach dieser Anleitung und ein paar Hinweisen in den Foren habe ich die erste Migration gemacht, und zwar zunächst mit einer Webseite, die bis auf ein Theme keinerlei Erweiterungen hat.

Meine Vorgehensweise:

  1. Herunterladen des Contao Managers der neuesten Contao-Version, ich habe mich für die Version 4.4 LTS (Long-Term-Support) entschieden, wer die neuesten Features benötigt, kann auch 4.5 auswählen.
  2. Da man ja eher nicht an einer Liveinstallation arbeiten möchte, habe ich eine Subdomain angelegt und in dem entsprechenden Ordner über ftp einen Unterordner web angelegt (zwingend notwendig). In diesen Ordner habe ich die heruntergeladene Datei contao-manager.phar geladen und in contao-manager.phar.php umbenannt.
  3. Über phpMyAdmin (oder ein ähnliches Datenbankprogramm) habe ich eine neue Datenbank angelegt.
  4. Nun sollte man die Installation starten, indem man über den Browser die contao-manager.phar.php aufruft, und zwar hängt man sie in der Browserzeile einfach an die Domain: subdomain.hauptdomain.tld/web/contao-manager.phar.php [Pfad anpassen].
  5. Dann erfolgt im Browser die Installation, man legt einen Zugang (Benutzername und Passwort für den Contao Manager an, das ist völlig unabhängig vom Admininstratorkonto in Contao), man erkennt wie gewohnt die Lizentvereinbarungen an, legt ein Passwort für die Installation fest, gibt die Datenbankinformationen ein und legt ein Administratorkonto für das Contao-Backend an.
  6. Jetzt muss man über phpMyAdmin (o.ä.) die alte Datenbank exportieren, die neue Datenbank leeren (also alle Tabellen anklicken und löschen) und die alte Datenbank hier importieren.
  7. Dann ruft man wie gewohnt das Installtool auf, dieser Button wird automatisch nach der Installation angezeigt. Die DB wird aktualisiert (bitte alles anklicken) und die Installation ist fertig; man kann sich im Backend anmelden.

Notwendige Anpassungen: In der CSS des eigenen Themes muss man die aktive Klasse in der Navigation von span zu strong umbenennen (warum? Weil man das so machen soll, sagt Leo Feyer [bzw. dessen Mutter]) und evtl. die Schriftstärke (font-weight) auf normal setzen, wenn man den aktuell ausgewählten Menüpunkt nicht halbfett dargestellt haben möchte. In der CSS könnte das dann etwa so (oder so ähnlich) aussehen:

.mod_navigation.main li strong { ... } (statt .mod_navigation.main li.active span { ... })

Natürlich muss man alle Dateien (Bilder, Pdfs) aus der alten Webseite, die man auch in der neuen Webseite verlinkt haben möchte, über ftp in derselben Struktur in den Ordner files laden. Anschließend empfielt es sich, in der Dateiverwaltung die Dateien zu synchronisieren.

Einen Großteil der Links kann man automatisch anpasssen, indem man in der Systemwartung im Backend die Symlinks neu erstellen läßt. Die Bilder in Galerien allerdings muss man neu zuweisen. Das geht schnell, wenn man Bilder aus ganzen Ordnern darstellen will (also immer gut strukturieren), ansonsten ist es mit etwas Fleißarbeit verbunden. Übrigens muss man in der Dateiverwaltung die Ordner explizit freigeben, die sind also von Haus aus auf nicht öffentlich eingestellt. Also falls man sich wundert, dass Bilder (Logo, Hintergründe etc.) nicht angezeigt werden, bitte gucken, ob der entsprechende Ordner auf öffentlich gestellt wurde.

Evtl. muss man das Theme neu installieren und in der Seitenstruktur zuweisen. Hat man Templates selber geändert oder selber erstellt, muss man natürlich auch diese über ftp in den Templates-Ordner hochladen.

Will man die Konfuguration übernehmen und nicht alles neu einstellen (Einstellungen im Backend), muss man die alte localconfig.php kopieren und über ftp in den Ordner system/config kopieren, dann hat man allerdings eine Menge Zeilen in der Datei, die nicht mehr benötigt werden. Entweder man bereinigt diese oder gibt die paar Daten in den Einstellungen einfach ein.

Vieles, was man im Theme manuell geändert hat (z.B. neue Layoutbereich) muss man manuell wieder einrichten und zuweisen. Richtig aufwändig wird es natürlich, wenn man Erweiterungen installiert hat, die nicht mehr unterstützt werden. Dann muss man sich nach neuen Erweiterungen umschauen und diese natürlich anpassen und entsprechend zuweisen. Module, die im Inhaltbereich eingebunden wurden, musste ich komplett neu zuweisen.

Die Erweiterungen verwaltet man jetzt unter dem Contao Manager, eigentlich gut und intuitiv zu bedienen. Auch das Installtool, Cache-Leeren u.ä. kann man hier machen. Leider funtioniert das Installieren von Erweiterungen nicht in jedem Fall (z.B. listing bundle, contao_zurb_foundation), geklappt hat dagegen z.B. die Installation von contao-mobile_menu. Ich habe noch nicht versucht, Erweiterungen manuell zu installieren.

Fazit: Contao 4 geht eine gute Richtung, um nicht noch mehr Nutzer an Wordpress zu verlieren, das in der Tat intuitiver zu bedienen ist und tolle Themes anzubieten hat, aber längst nicht so flexibel und sicher ist wie Contao.

Allerdings ist der Umstieg doch etwas aufwändig, wenn man Erweiterungen benutzt. Die technischen Anforderungen an das Hosting sind relativ hoch und es soll Probleme mit verschiedenen Hostern (Strato, 1&1) geben. Meine Seiten, die ich bisher umgezogen habe, laufen bei schwarzkuenstler.com, da scheint alles soweit zu klappen. Warum es Probleme mit dem Installieren von Erweiterungen gibt, weiss ich nicht.

In letzter Zeit gibt es viele Spam-Kommentare, deswegen habe ich die Kommentarfunktion erst einmal abgeschaltet.

Einen Kommentar schreiben

Kommentar von Thomas |

Hallo, guter Tipp, genau das habe ich gerade gesucht. Beste Grüße, Thomas

Kommentar von Kristina |

Sehr genialer Tipp. Das brauchte ich! Vielen lieben Dank!

Kommentar von Alex |

DANKE! Ich hab auch eben danach gesucht und es klappt bestens.

Kommentar von Emanuel P. |

Bin gespannt, Backend ist leicht aber Frontend sind viele am Grübeln wegen des 401 Fehlers und es existiert leider keine gute Anleitung wi man 2FA fürs Frontend richtig konfiguriert (speziell Template Anpassung und security.yml)

Antwort von Anika Strobach

Danke für den Kommentar. Ich hoffe, ich habe bald die Zeit dazu!

Kommentar von Gerhard Hirt |

Guten Tag
Was kann ich tun, wenn z.B. bei der 7. Pos. die Meldung Zeitüberschreitung kommt?
Was ist der vermutliche Grund für diese Zeitüberschreitung.

Danke für eine kurze Antwort
Gerhard

Antwort von Anika Strobach

Vielen Dank für den Kommentar.

Die Zeitüberschreitung liegt normalerweise daran, dass die Internetverbindung zu langsam oder gestört ist, entweder bei Ihnen selber oder bei dem Server, auf dem Ihre Webseite liegt. Oft klappt es zu einem anderen Zeitpunkt.

Mehr kann ich leider aus der Ferne und mit den wenigen Infos nicht sagen.

Kommentar von Karsten |

Hallo,
ich habe das plugin installiert und aktiviert.
In einem Beitrag per code -> php-> pass = XXXX eingetragen
Es erfolgt keine Abfrage!
Codeschnipsel als weißes Feld!
Was mache ich falsch?
Der Beitrag ist einfach nur ein Link, den man nach Eingabe des richtigen Passwortes sehen soll.

Kommentar von Marion |

Hallo Anika,
danke für die hilfreiche Anleitung!
Weißt Du, ob man die 2FA problemlos wieder rückgängig machen kann?
Viele Grüße
Marion

Kommentar von Matthias Hechler |

Muss die DENIC denn nicht auch den Provider herausgeben?

Kommentar von Gottfried |

Hallo, 2FA ist ne super Sache, aber nun ist das Handy weg und ich habe noch eine Sicherung der Backup Codes. Muss ich den Codeblock nun ganz in des Feld eingeben?

Kommentar von Comichaot |

Hatte die letzten Tage vermehret Brutforce angriffe aber dank Limit Login Attempts Reloaded ist alles gut!

Kommentar von Michael Conrad |

Danke für den super Tipp! Das war genau das Steinchen, was mir auf den Weg zur Suche nach dem Webserver gefehlt hat.

Sie müssen sich anmelden, um Kommentare hinzuzufügen.