PHP-Versionen und Auto-Inspektionen

Warum pflegen wir unsere Sofware nicht?

Ein arbeitsreicher Nachmittag

Letzte Woche Freitag Nachmittag habe ich ein bisschen Systempflege betrieben und ich muss mich selber an den Ohren ziehen, dass ich dies so lange habe schleifen lassen. 

Was habe ich gemacht? 

Ich nutze für die Abrechnungen meiner Kunden eine gekaufte Software. Diese hatte ich zuletzt im Corona-Jahr 2020 aktualisiert. Hintergrund war die automatische Mehrwehrtsteuer-Anpassung für den Zeitraum Juli bis Dezember 2020. Danach folgten für diese Software noch neun kleinere Updates, die ich bisher (bewusst) ignorierte. Doch jetzt war es an der Zeit, diesen Missstand meinerseits zu beheben. Warum ich so lange gewartet habe, dazu später mehr.

Und warum jetzt?

Eine nette Designerin ist in den vergangenen Tagen auf mich zugekommen und ich wurde mit Webseiten in Verbindung gebracht, die ältere Contenido-Versionen (4.8 von 2014 und 4.9 von 2017) im Einsatz haben. Die Webseiten liefen zwar, allerdings ist der Betrieb mit Sicherheitsrisiken verbunden und ich wurde in den vergangen 1-2 Jahren häufiger mit der Thematik konfrontiert, dass Webhoster wie Strato, 1und1 (Ionos) und ähnliche ältere PHP-Versionen gänzlich abschalten oder in einen kostenfplichtigen Extra-Support für beachtliches Geld (teilweise 3 Euro pro Monat) umwandeln. Meist verstehen die Kunden entsprechende Informationen diesbezüglich nicht und wundern sich, warum plötzlich ihre Seiten nicht mehr laufen oder alles doppelt so teuer ist. 

Was ist PHP und was hat es mit den Versionen auf sich?

PHP ist eine Programmiersprache, die häufig für die Erstellung und den Betrieb von Webseiten verwendet wird. Stand heute, 18. Juli 2022 nutzen etwas mehr als drei Viertel aller Webseiten PHP (Quelle). So auch die meisten Systeme dich ich verwendete oder entwickle. Früher war die Entwicklung der PHP-Programmiersprache langlebiger ausgeprägt. PHP mit der Versionsnummer 5.x gab es von 2005-2019, PHP 4.x hielt sich auch wackere 7 Jahre von 2001-2008. Die neueren PHP-Versionen 7 und 8 haben kürzere Zyklen. Jede Unterversion ist 2 Jahre gültig + 1 Jahr Sicherheitssupport. Eine neue Unterversion kommt ca. alle 10-12 Monate. PHP 7 wird aktiv entwickelt und unterstützt von Januar 2019 bis Nov 2022. Also noch nicht einmal 4 Jahre. 

Die neueren PHP-Versionen passen sich dabei aktuellen Sicherheitsstandards an, bieten mehr Funktionen in der Entwicklung und sind meist schneller (PHP 5.6 zu 7.0 ist teilweise um 200-300% schneller). Um diese Verbesserungen zu gewährleisten müssten leider einige Funktionen weichen. Dies geschieht insbesondere bei den Hauptversionssprüngen z.B. von 5 auf 7 bzw. auf PHP 8.

PHP-Versionszyklen im Überblick

PHP 5 noch häufig im Einsatz

Schätzungsweise sind noch fast 25% aller mit PHP-betrieben en Webseiten mit PHP 5 im Einsatz. PHP 5 wird wie angemerkt vermehrt abgeschaltet und dann herrscht große Not, die eigene Webseite nicht mehr läuft.

Auf diese oben genannte Thematik mit den Hostern und den Problemen bei den PHP-Umstellungen wies ich die Designerin natürlich hin. Die oben genannten Contenido-Versionen laufen aktuell auch noch mit PHP 5.6 und der Support endete bereits im Jahr 2019. In den Fällen von Contenido 4.8 ist eine Aktualisierung auf die aktuelle Contenido 4.10 leider etwas aufwändiger, da sich das System im Hintergrund stark geändert hat. Dabei helfe ich natürlich gerne mit meinen 16 Jahren Contenido-Expertise auch 2022 gerne weiter.

Auto-Inspektion und Software?

Ich mache jetzt einen Sprung zu meinem Auto. Warum? Weil ich es brauche und es mir wichtig ist. Ich wasche mein Auto (manchmal), ich bin regelmäßig in der Inspektion und lasse alles auf Herz und Nieren prüfen, damit es noch lange und gut läuft. Der Unterschied zur Software. Ich fahre mit dem funktionierenden Auto in die Waschanlage und die Werkstatt und erhoffe mir, dass ich auch wieder damit zurückfahre. 

Warum machen wir das mit unserer Sofware nicht? Warum warten wir, bis eine Sicherheitslücke ausgenutzt wird oder eine alte PHP-Version abgeschaltet wird und gar nichts mehr funktioniert? Sind wir nicht auf unsere Webseiten, auf unsere PCs und unsere Buchhaltungssoftware angewiesen?

Meine Buchhaltung und die Abhängigkeiten

Ich glaube wir haben aus Unwissenheit der Nebeneffekte Angst, Dinge zu ändern (gemäß dem Sprichwort - Never change a running system) und sehen nicht die Notwendigekeit, den Aufwand zu betreiben Software zu pflegen, da es Geld kostet. Und es läuft ja schließlich gerade (noch).

Im Fall meiner Buchhaltung hing ich leider auch noch auf der PHP-Version 5.6 fest. Updates für die PHP7er-Versionen waren vorhanden, doch ich bin Softwareentwickler und Wirtschaftsinformatiker. An meine "Buchhaltung" habe ich weitere Systeme z.B. die Telefonabrechnung, Verwaltung der Ausgangsrechnungen bis hin zu automatisierten Datev-Steuerexporten und Elster-Vorlagen-Ausfüller angebaut. Teilweise nutzte ich dafür Programme, deren Anbieter gar nicht mehr die Software weiterentwickeln. Eine Aktualisierung der eigentlich Sofware (diese dauerte ca. 10 Minuten) führte durch die Umstellung der PHP-Version dazu, dass teilweise die anderen Systeme ebenfalls angepasst werden mussten. Diesen Aufwand scheute ich und nahm in Kauf, dass ich neue Funktionen nicht nutzen konnte und ggf. Sicherheitsupdates nicht einspielte. 

Welche ein schlechtes Vorbild. 

Letztlich schlug am Freitag mein schlechtes Gewissen zu. Als systematischer Softwareentwickler konnte ich mir geänderte Funktionen auflisten lassen und letztlich hat die Anpassung inkl. Testen nur einen Nachmittag benötigt. Eine strukturierte Programmierung im Vorfeld ist Gold wert. Ich bin jetzt auf einer unterstützten PHP-Version und der letzten Version meiner Buchhaltungssoftware von Mai 2022. Damit kann ich gut leben. 

Eine Bitte an uns alle: Lassen sie uns unsere Software auch regelmäßig zur Inspektion bringen, Aktualisierungen und Anpassungen vornehmen, damit wir nicht unverhofft vor einem Defekt zu einem unglücklichen Zeitpunkt stehen. 

Nicht schön, aber hilfreich: Es gibt für das PHP-Update von 5 auf 7 ein Programm-Schnipsel, den man in ältere Programme einbinden kann ohne viel Programmieren zu müssen.