Tipps und Tricks zum Update auf Contao 3
Wir können hier Tipps und Tricks für das Update auf Contao 3 zu sammeln.
Bitte postet hier nur fertige Tipps, keine Fragestellungen.
Letztere könnt ihr in einem eigenständigen Thema unterbringen.
-------
WICHTIG: Lest euch unbedingt die offiziellen Hinweise zum Update auf Contao 3 zuerst durch:
- Update-Info 1
- Update-Info 2
- Update-Info 3
- Update-Info 4
- Contao-Changelog
- Github-Tickets zu Contao 3
1. Vor dem Update
1.a
Wichtig: Macht unbedingt ein Backup eurer Seite BEVOR ihr ein Update macht. Ein komplettes Backup bedeutet, dass ihr sowohl die Datenbank als auch die kompletten Daten auf dem Webspace sichert!
Beachtet bitte auch, dass es sich hier um das erste Major-Release von Contao 3 handelt, das die Community bisher erlebt hat ... nehmt ein Update also NICHT auf die leichte Schulter. Plant dafür entsprechend Vorrecherche, Zeit und Geduld ein. Vor allem aber: Macht das Update nicht selbst, wenn ihr kein wirkliches fachliches Know-How rund um Contao habt.
1.b
Contao 3 hat modernere Systemanforderungen als Contao 2.x - prüfe daher vorab, ob dein Webspace überhaupt dafür geeignet ist.
Die Prüfung kannst du mit dem neuen Contao-Check machen. Lade die Date herunter, entpacke sie und folge den Anweisungen aus der darin enthaltenen ReadMe-Datei.
1.c
Beim Update von Contao 2 auf Contao 3 darf der Ordner tl_files nicht in files umbenannt werden! Wenn die Um*benennung gewünscht wird, müssen folgende Schritte ausgeführt werden:
Sofern eine Umbenennung nicht gewünscht ist, bleibt der Name des Upload-Ordners auch in Contao 3 tl_files. Dies gilt natürlich nicht für Neu-Installationen.
1.d
Prüfe, ob die von dir eingesetzten Erweiterungen für die 3 freigegeben sind. Wenn das anscheinend nicht der Fall ist, dann schau nochmal unter http://www.contao-community.de nach, ob dort vielleicht schon Infos dazu existieren, ob die Erweiterung unter der 3 sauber läuft. Einige Erweiterungen funktionieren darunter bereits, obwohl der Autor das noch nicht in die Erweiterungsverwaltung geschrieben hat.
Wenn du herausfindest, dass eine Version auf der 3 läuft, aber noch nicht entsprechend markiert ist, wende dich bitte mit diesem Hinweis an den Entwickler der Extension. Er kann dann den Hinweis anpassen.
1. Nach dem Update
2.a
Prüfe im Installationstool ob die Datenbank auch sauber aktualisiert wurde. Du rufst das Installationstool über http://www.domain.tld/contao/install.php (www.domain.tld gegen die Bezeichnung deiner Domain ändern) auf. Gib das Installationspasswort ein.
Falls du dein Installationspasswort vergessen hast, kannst du dir per FTP aus system/config/ die Datei localconfig.php herunterladen. Öffne diese Datei mit einem UTF8-fähigen Editor (achte darauf, dass das Format auch auf UTF8 eingestellt ist!) und lösche die Zeile die mit $GLOBALS['TL_CONFIG']['installPassword'] beginnt. Speichere die Datei wieder im UTF8-Format ab und lade die Datei wieder per FTP in system/config hoch.
Nun wirst du beim Aufruf des Installtools gebeten, ein neues Installationspasswort einzugeben und dieses in der Zeile darunter zur Bestätigung nochmal einzutippen. Damit stellst du also wieder ein neues Install-Passwort ein (das du dir nun am besten merkst ;-)).
Schaue nun, ob die Datenbanktabellen im Installationstool als korrekt eingestellt angezeigt werden. Wenn nicht, aktualisiere sie über dieses Tool. Es kann sein, dass du sie mehrfach hintereinander aktualisieren musst ("Mehr-Schritt-Update"). Lies also genau, was da jeweils auf dem Button steht.
2.b
Wenn das Update fertig ist (egal ob händisch oder per Live Update), prüfe im Root-Verzeichnis die .htaccess-Datei (sofern du sie einsetzt).
Die .htaccess von Contao 3 hat sich so massiv verändert, dass es wahrscheinlich am besten ist, dass du die alte .htaccess entfernst und stattdessen die mitgelieferte .htaccess.default in .htaccess umbenennst und einsetzt. Achte dabei darauf, dass du eventuell spezielle Anpassungen (z. B. Angaben, damit die Seite bei deinem Webhoster überhaupt läuft) wieder ergänzen musst. Achte darauf, dass einige Webhoster je nach PHP-Version eine andere Anpassung benötigen. Lies dir dazu im Zweifelsfall den entsprechenden Thread zu deinem Webhoster hier im Update-Forum der Community durch.
-------
... ich ergänze hier die Basisinfos nach und nach ... (Stand: 30. Oktober)
CSS-Framwork: Holy Grail, Media-Queries, externe Dateien ...
Auch für mich war der heilige Gral erst irritierend, vor allem da er gleichzeitig mit responsivem Verhalten eingeführt wurde. Ich habe heute mal einiges davon erforscht und in diesem Thread alle meine Erkenntnisse zum neuen CSS-Framework aufgeschrieben.
Nur ein Beispiel: Keine prozentualen Spaltenbreiten!
Errormeldungen und Troubleshooting
Ich habe hier ein paar Errormeldungen, die mir beim Update auf Contao3 bzw. Themeexport / Themeimport untergekommen sind, gesammelt und dazu geschrieben was man tun kann:
Fatal error: Uncaught exception Exception with message Invalid file files/music_academy thrown in /www/xxxx/xxxx/xxxx/xxxx /system/modules/core/library/Contao/Combiner.php on line 90
#0 /www/ .../system/modules/core/library/Contao/Controller.php(2020): Contao\Combiner->add('files/music_aca...', xxxxx, '')
#1 /www/ .../system/modules/core/classes/FrontendTemplate.php(198): Contao\Controller::replaceDynamicScriptTags('...')
#2 /www/ .../system/modules/core/pages/PageRegular.php(163): Contao\FrontendTemplate->output()
#3 /www/ .../index.php(250): Contao\PageRegular->generate(Object(Contao\PageModel))
#4 /www/ .../index.php(411): Index->run()
#5 {main}
Troubleshooting:
Dateiverwaltung, alle Bilder aus Original-Music-Academy loeschen.
Bzw. Das Original Music-Academy VOR dem Themeexport loeschen, dann tritt der Fehler erst gar nicht auf.
--------------------------------------------------------------------------------------------------------------------------------------
Fatal error: Class 'TaskMessages' not found in /www/ .../system/modules/core/library/Contao/System.php on line 110
Troubleshooting:
Extension tasks installieren.
Aus dem ER runterladen und einfach system/modules/tasks ueberschreiben.
--------------------------------------------------------------------------------------------------------------------------------------
Fatal error: Uncaught exception Exception with message Query error: Column 'screenshot' cannot be null (INSERT INTO tl_theme (id, tstamp, name, author, folders, templates, screenshot, vars) VALUES ('2', '1333363094', 'xxxxx', 'xxxx', 'a:1:{i:0;s:2:\"22\";}', 'templates/xxxx', NULL, 'a:0:{}')) thrown in /www/ .../system/modules/core/library/Contao/Database/Statement.php on line 317
#0 /www/ .../system/modules/core/library/Contao/Database/Statement.php(261): Contao\Database\Statement->query()
#1 /www/ .../system/modules/core/classes/Theme.php(723): Contao\Database\Statement->execute()
#2 /www/ .../system/modules/core/classes/Theme.php(108): Contao\Theme->extractThemeFiles(Array, Array)
#3 /www/ .../system/modules/core/classes/Backend.php(231): Contao\Theme->importTheme(Object(Contao\DC_Table))
#4 /www/ .../contao/main.php(121): Contao\Backend->getBackendModule('themes')
#5 /www/ .../contao/main.php(319): Main->run()
#6 {main}
Troubleshooting:
... cannot be Null ist ein Fehler der auftaucht, wenn man Tristans Skript nicht in der richtigen Reihenfolge ausgefuehrt hat
Erst Umbenennung nach files, dann Skript ausführen. Nicht umgekehrt.
--------------------------------------------------------------------------------------------------------------------------------------
Fatal error: Uncaught exception Exception with message Could not find template "moo_analytics" thrown in /.../system/modules/core/library/Contao/TemplateLoader.php on line 116
#0 /.../system/modules/core/library/Contao/Controller.php(88): Contao\TemplateLoader::getPath('moo_analytics', 'xhtml', 'templates/xxxx...')
#1 /.../system/modules/core/library/Contao/Template.php(255): Contao\Controller::getTemplate('moo_analytics', 'xhtml')
#2 /.../system/modules/core/classes/FrontendTemplate.php(37): Contao\Template->parse()
#3 /.../system/modules/core/pages/PageRegular.php(626): Contao\FrontendTemplate->parse()
#4 /.../system/modules/core/pages/PageRegular.php(159): Contao\PageRegular->createFooterScripts(Object(Contao\LayoutModel))
#5 /.../index.php(250): Contao\PageRegular->generate(Object(Contao\PageModel))
#6 /.../index.php(411): Index->run()
#7 {main}
Troubleshooting:
Seitenlayout oeffnen und einfach nochmal neu abspeichern. GGfs. in der Seitenvorlage bei Analytics-Templayte ==> Google oder Piwik anhaken.
--------------------------------------------------------------------------------------------------------------------------------------
Fatal error: Uncaught exception Exception with message Query error: Duplicate entry 'files/xxxx' for key 'path' (INSERT INTO tl_files (pid, tstamp, name, type, path, hash, found) VALUES (0, 1357770342, 'xxxx', 'folder', 'files/xxxxx', 'xxxxxx', 1)) thrown in /www/xxxxx /system/modules/core/library/Contao/Database/Statement.php on line 317
#0 /www/...system/modules/core/library/Contao/Database/Statement.php(261): Contao\Database\Statement->query()
#1 /www/...system/modules/core/library/Contao/Model.php(236): Contao\Database\Statement->execute()
#2 /www/...system/modules/core/classes/Theme.php(494): Contao\Model->save()
#3 /www/...system/modules/core/classes/Theme.php(108): Contao\Theme->extractThemeFiles(Array, Array)
#4 /www/...system/modules/core/classes/Backend.php(231): Contao\Theme->importTheme(Object(Contao\DC_Table))
#5 /www/...contao/main.php(121): Contao\Backend->getBackendModule('themes')
#6 /www/...contao/main.php(319): Main->run()
#7 {main}
Troubleshooting:
erscheint manchmal nach dem Import eines Themes, welches man schon einmal installiert hatte, dann aber gelöscht hatte und nun wieder importieren will.
Einfach nochmal importieren.
Passwörter funktionieren nicht mehr nach Update
Ich habe vor Kurzem ein Update von 2.11.6 auf 3.0.2 gemacht und hatte anschließend Probleme mit Passwörtern. Nach dem Update war kein Login mehr möglich - erst nachdem ich das Passwort auf reset123 über phpmyadmin in der DB wieder zurück gesetzt hatte, kam ich wieder ins Backend.
Nach dem ersten Login hat es jedoch wieder nicht funktioniert. Ich habe Errorlogs durchsucht und Dateiabgleiche gemacht, jedoch erfolglos.
Die Lösung lag letztendlich in der Größe des Datenbankfeldes für Passwörter. Bisher war das Feld password in tl_user auf varchar 64 eingestellt, ich habe dies manuell auf 128 angepasst, nun funktionieren auch wieder die Passwörter. Bemerkt habe ich es durch die Beispielinstallation mit dem Benutzer k.jones - das neue Passwort liegt bereits im neuen Format vor und konnte nicht komplett importiert werden, bzw. wurde beim Import abgeschnitten.
Ich hatte das Update manuell gemacht, anschließend die install.php ausgeführt und die enstprechenden Updateschritte durchlaufen, ein Anpassen dieser Tabelle gab es jedoch nicht.
Vielleicht hilft dies dem ein oder anderen beim Update oder ein weiterer Benutzer kann es bestätigen und man kann ein Ticket daraus erstellen.
damit alte Links noch funktionieren
in die .htaccess
Code:
...
##
# URL rewriting
##
<IfModule mod_rewrite.c>
RewriteEngine On
##
# Change the RewriteBase if your Contao installation is in a subdirectoy and
# the rewrite rules are not working properly. Usage examples:
#
# RewriteBase /contao-3.0.0
# RewriteBase /path/to/contao
#
# Depending on your server, you might have to remove the line entirely.
##
RewriteBase /
# Wechsel 2.x auf 3.0 tl_files zu files
RewriteRule ^tl_files/(.*)$ /files/$1 [L]
...
umbennen von .tpl in .xhtml per Augen zu und durch...
auf Konsole unter /templates
Code:
find . -name '*.tpl' -exec sh -c 'mv "$0" "${0%.tpl}.xhtml"' {} \;
ist rekursiv
Mootools-Templates zu viel
Nach der Umstellung von 2.10 auf 3.0.6 habe ich bei einer Multi-Domain-Implementierung "zu viele Mootools-Templates" in der Seiten-Layout-Ansicht
Alle Templates haben eigene Template-Ordner zugewiesen aber dennoch tauchen hier viele Moo-Templates aus anderen Themes auf (mit dem Hinweis "(Theme xy)" )
?? wieso
Hinweis: die Angaben zu den Zeilen in den Layouteinstellungen werden nicht übernommen => muss man wieder anklicken