Contao 3.5.x mit PHP 7.x verwenden (PHP-Version-Upgrade)

von Oliver Richter (Kommentare: 4)

Seit Mai 2018 ist der Support für Contao 3.5 ausgelaufen und es werden bis Mai 2019 nur noch Sicherheitsupdates zur Verfügung gestellt. Dennoch sind noch viele Contao 3.5-Installation aktiv und laufen nicht selten noch mit PHP5. Die Webhoster drängen in diesen Fällen schon seit längerer Zeit darauf, auf eine aktuelle PHP-Version zu upgraden (z.B. ist die PHP-Version 7.2.10 ist am 13. September 2018 erschienen). 

Contao 3.5 sollte grundsätzlich kompatibel sein mit PHP7. Sollten also Fehler beim Upgraden der PHP-Version auftauchen, sind sie oft bei den teilweise schon veralteten Erweiterungen zu suchen. Ich habe hier mal wichtige Punkte bei der Aktualisierung der PHP-Version für die Contao-3.5-Installation zusammen gefasst:

  1. Stellen Sie zuerst sicher, dass sie die aktuelle Contao-3.5-er-Version installiert haben (zum Zeitpunkt des Schreibens ist das die Version 3.5.36).
  2. Aktualisieren Sie alle installierten Erweiterungen in Contao unter System/Erweiterungsverwaltung auf die jeweils neueste Version. Sollte es hier bereits zu Problemen kommen, löschen Sie ggf. den Cache via System - Systemwartung oder manuell, indem Sie den Inhalts des Ordners /system/cache/ löschen.
  3. Öffnen Sie die Datei /system/config/localconfig.php bzw. stellen Sie sicher, dass dort in der Zeile $GLOBALS['TL_CONFIG']['dbDriver'] = 'MySQLi'; als Datenbank-Treiber nicht mehr MySQL, sondern z.B. MySQLi verwendet wird und eingestellt ist. 
  4. Vielleicht haben Sie Glück und Ihre Contao-Version ist jetzt schon bereit unter PHP7 zu laufen? Testen Sie dies, indem Sie im Backend Ihres Webhosters auf eine PHP-Version 7.x umstellen. Rufen Sie nun also sowohl das Front- als auch Backend auf. Wenn dies soweit möglich ist, testen Sie nun nach und nach alle kritischen Funktionen ihrer Contao-Installation ein mal durch. 
  • Sollten Fehler auftauchen (Hinweisbox oder Fehlermeldung) oder die Seite schlicht weiß bleiben nach dem Neuladen, rufen Sie den Fehlerlog unter /system/logs/error.log auf. Je nach Fehlermeldung sollten Sie entsprechend handeln.
    In den meisten Fällen bietet es sich dann an, alle Erweiterungen/Module vorerst zu deaktivieren und nach und nach wieder einzeln zu aktivieren, um zu sehen, welche Erweiterung Probleme bereitet. Dazu gehen Sie wie folgt vor:
  1. Wechseln Sie mit Ihrem SFTP-Browser in den Ordner /system/modules/In diesem Verzeichnis befinden sich die installierten Erweiterungen/Module jeweils in einem der Unterordner.
  2. Um die einzelnen Module manuell zu deaktivieren, fügen Sie nun einmal in jedem einzelnen Modul-Ordner eine Datei mit dem Namen .skip ein (die Datei benötigt keinen Dateiinhalt). Damit ist die jeweilige Erweiterung/Modul deaktiviert. Deaktivieren Sie auf diese Weise erst mal alle Erweiterungen/Module.
  3. Rufen Sie nun abermals Front- und Backend auf. Sofern die Seite ohne Fehler sichtbar ist, können Sie nun nach und nach alle Erweiterungen wieder aktivieren, indem Sie die Datei .skip aus dem jeweiligen Modul-Ordner löschen und anschließend die Anzeige im Front- und Backend testen. 
    Haben Sie eine problematische Erweiterung gefunden, schauen Sie zuerst mal, ob der oder die Entwickler(in) vielleicht entsprechende Hinweise oder gar eine Anpassung bereit gestellt hat. Sonst lohnt sich natürlich immer ein Blick auf https://community.contao.org/de/.

Viel Erfolg!

 

Hier nun noch eine Liste mit den von mir erfolgreich getesteten PHP7.2-kompatiblen Erweiterungen/Module für Contao 3.5.36:

  • visitors 3.8.4/3.8.6
    • botdetection 4.2.2
    • php_excel 3.0.1
  • m17-sticky-backend-footer 2.0.6
  • tags 3.5.2
  • xls_export 3.0.0
  • ce-access 2.0.5
  • changelanguage 3.1.9
    • haste 4.20.3
    • MultiColumWizard 3.3.6
  • dk_caroufredsel 1.3.2
  • NamespaceClassLoader 1.0.3
  • notification_center 1.4.6
    • dcawizard 2.4.2
    • haste 4.20.3
    • NamespaceClassLoader 1.0.3
  • boxes 1.16.2
  • dhl_googlemaps 2.4.1
    • dhl_geocode 1.1.4
  • mailusername 1.0.6
  • rocksolid-slider 1.6.4
  • MetaModels 2.0.4 (18.09.2018) inkl. der zum nightly build zugehörigen Erweiterungen
  • smart_backend_theme 1.6.1
  • FlexSlider 1.4.3
  • efg 2.2.1
  • full-background-images 1.6.1

Schreiben Sie mir gerne, wenn Sie auch andere Erweiterungen erfolgreich getestet haben. 

Zurück

Einen Kommentar schreiben

Kommentar von Michi |

Danke hat mir weitergeholfen :)

Antwort von Oliver Richter

Danke, das freut mich. 

Kommentar von Katrin |

Ich bin bei der Umstellung auf PHP 7.2 genau nach Ihrer Anleitung vorgegangen. Anfangs erschien nur eine weiße Seite, jetzt läuft es wieder. Mit der error.log Liste konnte ich nicht viel anfangen. An welchem Modul es letztendlich gelegen hat - keine Ahnung...

Antwort von Oliver Richter

Danke und es freut mich, dass es bei Ihnen am Ende immerhin geklappt hat.

In der error.log würden mögliche Fehler zeilenweise aufgeführt werden. Im besten Fall würde man so das entsprechende Modul am Dateipfad der aufgerufenen PHP-Klasse bzw. -Datei erkennen oder es zumindest etwas nachvollziehen können. Diese log-Datei befindet sich im Ordner /system/modules/ Ihrer Contao-Installation. Sie können Sie zum Beispiel über ein FTP-Programm wie FileZilla öffnen.

Kommentar von Manfred |

Besten Dank. Bereits das Editieren der localconfig.php hat geholfen.
Allerdings funktioniert mit Contao 3.5.40 die dlh_googlemaps-Erweiterung nicht mehr. In der Erweiterungsverwaltung wird der Status "Voraussichtlich kompatibel zu Contao 3.5.40" ausgegeben. Gibt es hierfür vielleicht auch eine Lösung? In der Konsole wird der Fehler "google is not defined" geworfen. Vermutlich macht die Funktion gmap1_initialize() Probleme.

Antwort von Oliver Richter

Danke für den Hinweis. Welche Version des Plugins betrifft das? Ich werde das ggf. in der Liste dann aufnehmen.

Nur als Ergänzung: Für Contao 4.4 gibt es dafür dann die fortführende Erweiterung https://packagist.org/packages/delahaye/dlh_googlemaps

Beste Grüße, O.

Kommentar von RS |

Hallo,
ich muss mehrere alte Contao Versionen auf PHP 7 .1 umstellen, ab welcher Contao Version wird das ünterstützt?
Leider hab vorher noch nie mit Contao zu tun gehabt und bei den Versionierungen hab ich irgendwie kein Durchblick....
wenn ich das richtig verstehe geht das ab Version 3.5.x also ab 3.5.15? Und alles was darunter liegt ünterstützt kein PHP7?
Wäre es schwer von 3.5.15 auf 3.5.6 oder letzte 3.5. Version bzw. gibt es ein Update Manager oder Ähnliches?
Ein Update auf 4.x.x kommt nicht in Frage da ich kein Plan hab was dann auf mich zukommt und ich mich mit Contao 0 auskenne.

Wäre nett wenn du mir eine kleine Starthilfe geben könntest.?

Antwort von Oliver Richter

Hallo

Leider kann ich dir auch nicht genau sagen, ab welcher Contao-Core-Version es mit PHP 7.1 funktioniert. Contao 3.5.6 sollte grundsätzlich funktionieren, aber oft sind es dann  Erweiterungen, die Probleme bereiten und nicht kompatibel sind. Ich würde dir raten, dich dabei am besten mal durch Forum zu wühlen: https://community.contao.org/ Dort sind dann auch die Experten dafür.

Ein Update-Manager ist mir leider auch nicht bekannt.

Grundsätzlich empfehle ich dir aus vielen Gründen das Upgrade auf Contao 4. Aber wenn das gar keine Option ist, würde ich an deiner Stelle versuchen, die Erweiterungen und Contao auf die letzt mögliche Version zu bringen und dann mal eine Umstellung zu testen und im Fehlerfall notfalls die inkompatiblen Erweiterungen zu deaktivieren.

Beste Grüße und viel Erfolg, O.

Was ist die Summe aus 6 und 5?

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