PHP 7 und untote Zombiekomponenten aus der Hölle

Der Geschwindigkeitsgewinn der neuen PHP 7 Version ist enorm. Daher ist es klar das jeder mit einer Joomla! 3.5 Website feuchte Hände bekommt, bei dem Gedanken, nur dadurch 20% bis 50% mehr Geschwindigkeit zu bekommen.

Natürlich ist einem klar, dass nicht alle Komponenten mit der neuen Version funktionieren. Damit die Umstellung nicht in einer Katastrophe endet, haben wir für Euch ein paar Checklisten erstellt und eine Horrorgeschichte über »untote Zombie-Komponenten aus der Hölle«.

  1. Guckt welche Komponenten auf der Seite installiert sind und ob dieser mit PHP 7 funktionieren, oder ob es bekannte Probleme gibt.
    Liste über PHP 7 fähige Komponenten (List of Joomla! Extensions Supporting Joomla! 3.5 and PHP 7:  https://t.co/yoJkUD0i9u )
  2. Seite mit der »alten« PHP Version einmal durchklicken auch die Unterseiten, wenn Ihr einen Shop habt eine Probebestellung machen.
    Grund: Es wäre sehr doof, wenn die Seite allgemein einen Bug hat und Ihr nur in Richtung PHP 7 als einzig mögliche Fehlerquelle sucht.
  3. Stellt Euren Webspace auf PHP 7 um.
  4. Den Cache in Joomla als auch im Browser löschen.
    Grund: Wenn ihr zwischengespeicherte Dateien durchgeht, bringt Euch der Test nichts. Die Zeit kann man sich sparen.
  5. Dann die Seite wie beim ersten Test noch einmal durchgehen

Kleine Horrorgeschichte für Joomla-Administratoren

Wir wollten unsere Seite natürlich auch mit PHP 7 laufen haben. Die ersten Tests waren auch sehr vielversprechend. Die Seite lief sogar noch schneller als ich gedacht hatte. Alles bestens! ... Man legt sich zu Bette und beim Aufstehen sieht man entsetzt, dass die eigene Seite nicht mehr funktioniert.

Es erscheint folgende Fehlermeldung auf der error.php Seite.

0 - Call to undefined function mysql_escape_string()

Nun das ist nicht besonders ergiebig. Schnell wieder zurück auf PHP 5.6 gestellt. Die Seite läuft wieder. Alles durchgeklickt ... gut läuft immer noch. Dann die PHP Version wieder hoch gestellt.

Am nächsten Morgen fühlt man sich an den Film »und täglich grüßt das Murmeltier« erinnert. Die Seite geht wieder nicht. OK Welche Komponenten sind da installiert? Was könnte den Ärger machen?

Eine SEO Komponente holte einmal täglich Reports von Google. Ok das macht Sinn.

Wenn die nicht PHP 7 kompatibel ist, dann wäre das eine Erklärung. Wir guckten nach und diese lässt sich auch nicht im Backend aufrufen. Zurück auf PHP 5.6 gestellt  und wir finden folgende Einstellung. Google Statistiken sollen täglich abgerufen werden. Schnell auf inaktiv gesetzt. Dann die Komponenten deaktiviert und wieder PHP7 eingeschaltet. 

Aufgrund des Titels des Artikels werdet Ihr sicher darauf gekommen sein, dass die Seite am nächsten morgen schon wieder nicht lief. #WTF ?
Weitere Komponenten, die nicht kritisch sind deaktiviert und trotzdem trat am nächsten Morgen wieder das gleiche Problem auf.

Mir fiel auf, das das verwendete Template keinen Debug Infos auf der error.php ausgab. Die error.php ist für die Ausgabe von extremen Fehlermeldungen zuständig, so z.B. wenn die Seite abstürzt. Sie befindet sich innerhalb des verwendeten Template Ordners. (/templates/VERWENDETESTEMPLATE/error.php)

 So fügte ich schnell folgenden Codeschnipsel hinzu:

 

<?php if ($this->debug) :
echo $this->renderBacktrace();
endif; ?>

 

Als dann der Fehler wieder auftrat, sah ich, dass die deaktivierte SEO Komponente trotz der Deaktivierung ausgeführt wurde. Kurzer (wutentbrannter) Hand die Komponente deaktiviert und siehe da die Seite ging sofort wieder!

Fazit:

  1. Mit der oberen Checkliste fährt Ihr zu 98% der Fälle prächtig!
  2. Falls nicht ... zumindest in der IT gibt es durchaus untote Zombies oder um es mit Sherlock Homes zu halten: »Wenn man das Unmögliche ausgeschlossen hat, muss das, was übrig bleibt, die Wahrheit sein, so unwahrscheinlich sie auch klingen mag.« 

Mit dem Codeschnipsel in der error.php, die sich im verwendeten Template Ordner befindet, habt ihr sodann einen Chance dem bösen Untoten zu entdecken und dann zu exorzieren / deinstallieren.

Falls Sie mit Ihrer Firmen Website trotzdem Schwierigkeiten haben oder die Umstellung auf Joomla und PHP 7 Probleme bereitet, wenden Sie sich gerne an uns. Mit unserer Erfahrung in dem Bereich Debugging können wir Ihnen sicherlich weiter helfen.



So erreichen Sie uns:

deweso.de - Wir bringen Lösungen

  +49 40 - 59450 981
  info@deweso.de

 deweso.de
Inh. Frank Delventhal
Hermann-Balk-Str. 111a
22147 Hamburg


Suche