Informationen zur Integration des aktuellen Releases PHP 7.4 – Umgang mit eigenen Konfigurationen

Anfang März 2020 stellt goneo für alle Webhosting-Kunden das neue PHP 7.4 bereit. Gleichzeitig wird PHP 7.1 abgeschaltet. Grund dafür ist, das das Ende des Lebenszyklus von PHP 7.1 erreicht wurde und von den Herstellern/Herausgebern keine Updates mehr zu erwarten sind.

In diesem Artikel möchten wir einige wesentliche Informationen zusammenstellen.

Was Sie über den De-Launch von PHP 7.1 bei goneo wissen müssen

Mit dem Rollout Termin im März 2020 etabliert goneo PHP 7.3 als Standardversion. Bisher ist Version 7.1 diejenige, die bei neu angelegten Webservern systemseitig voreingestellt ist. Webserver, die bisher PHP 7.1 verwenden, werden auf PHP 7.3 umgestellt.

Die Releases unterscheiden sich nicht grundlegend. Es gibt Unterschiede, die aber in gängigen Webanwendungen bereits berücksichtigt wurden.

Einbindung PHP 7.3 als Modul und PHP 7.2 sowie PHP 7.4 via CGI

PHP 7.3 ist ab dem Aktualisierungstermin im März 2020 bei goneo als Modul in den Apache-Webserver eingebunden. Bislang war dies PHP 7.1.

Dabei gibt es technisch einen Unterschied, den man beachten muss, wenn es darum geht, bestimmte Parameter für die PHP-Version zu verändern: Die Releases 7.2 und 7.4 werden über CGI (Common Gateway Interface) angesprochen. Release 7.3 ist als Apache Modul eingebunden.

Daher ist die Handhabung eigener Konfigurationen (Änderungen bestimmter Parameter wie etwas der Anpassung des Memory Limits oder die Änderung der maximalen Größe für eine hochzuladende Datei) je nach verwendeter Version von PHP etwas anders. Für PHP 7.3 ändert man die Parameter per .htaccess-Direktive, bei den CGI-Varianten 7.2 und 7.4 mit der Datei .user.ini. Dies ist in der goneo-Hilfe so beschrieben:

Eigene .user.ini Datei erzeugen (PHP-CGI)
Änderungen an der PHP-Konfiguration können über eine eigene Datei namens „.user.ini“ vorgenommen werden. Dazu legen Sie einfach eine leere Textdatei in dem Verzeichnis an, in dem Sie die Änderungen wünschen und tragen lediglich die gewünschten Werte dort ein.

Beispielinhalt einer solchen Datei (.user.ini):

allow_url_fopen = Off
magic_quotes_gpc = Off
max_execution_time = 180
safe_mode = Off
…usw…

https://wiki.goneo.de/eigene_userini_cgi

Dies sollten Sie im Auge behalten, wenn Sie eigene PHP-Konfiguarationen anlegen oder verwenden.

Warum wird PHP 7.1 bei goneo abgeschafft?

Betriebsssysteme, Serversoftware und Tools ändern sich, sie entwickeln sich graduell weiter, teilweise auch sehr rasant.

Der Status End of life, den PHP 7.1 inzwischen geplanterweise erreicht hat, signalisiert, dass diese Version nicht mehr produktiv verwendet werden sollte. Bekannte und bislang unbekannte Fehler und Sicherheitslücken werden unter Umständen nicht mehr ausgemerzt.

Wir können und wollen uns als Webhostinganbieter diesem technologischen Fortschritt nicht verschließen und haben einen internen Fahrplan für die Integration neuer PHP-Version und Entfernung älterer Versionen, der natürlich an die offizielle PHP-Planung angelehnt ist.

Wie verfährt goneo mit älteren PHP-Versionen?

Gemäß des offiziellen PHP-Fahrplans (der Roadmap) möchten wir Anfang März 2020 die Version PHP 7.1 aus dem Angebot der PHP-Versionen, mit denen man einen Webserver betreiben kann, entfernen.

Aktuell werden neue Pakete für Neukunden mit PHP 7.1 als Standardversion ausgeliefert, wobei PHP 7.2 und 7.3 per Auswahl zur Verfügung stehen. PHP 7.1 wird bis 2.3.2020 noch zur Verfügung stehen, danach nicht mehr. Sollten Anpassungen oder Entwicklungsarbeiten fällig werden, empfehlen wir, umgehend eine Kompatibilität mit PHP 7.2 bis 7.4 anzustreben, um möglichst zukunftssicher zu agieren.

Was kann tun, wenn ich PHP 7.1 einsetzen muss?

Bitte überprüfen Sie Skripte, Anwendungen und Erweiterungen auf Kompatibilität mit aktuellen PHP-Versionen.

Bei Open-Source-Anwendungen ist oft in den readme-Dateien oder den zugehörigen Webseiten dokumentiert.

Bitte überprüfen Sie eingesetzte Skripte oder Anwendungen dahingehend, ob es nicht neue Versionen gibt oder ob Sie mit vertretbarem Aufwand einige Änderungen vornehmen können. Wenn es sich um individuell erstellte Software bzw. Skripte handelt, kontaktieren Sie den Autor. Ist dies nicht möglich, organisieren Sie eine Begutachtung des Codes durch einen Spezialisten. Planen Sie dafür mit genügend Vorlauf.

Bei goneo können Webhosting-Kunden jederzeit zwischen mehreren angebotenen PHP-Versionen umschalten, beliebig oft und ohne den Kundendienst in Anspruch nehmen zu müssen. Dies ist im goneo-Kundencenter möglich (https://kundencenter.goneo.de). Der betreffende Menüpunkt lautet: „Webserver“ > „Webserver-Amin“.

Sollte es sich in Ihrem Fall um ältere, nicht mehr verwendete Anwendungen handeln, die Sie seinerzeit vielleicht nur testweise aufgesetzt haben und nicht benötigen, löschen Sie diese Anwendung am besten und stellen Sie die PHP-Version für diesen Webserver auf 7.2 oder höher um.

Wenn Sie noch Skripte oder Anwendungen produktiv einsetzen, die zwingend PHP 7.1 voraussetzen und mit höheren PHP-Versionen nicht lauffähig sind, ist jetzt Handlungsbedarf gegeben. Es sind uns aktuell keine häufig eingesetzten Webanwendungen bekannt, bei denen dies der Fall wäre. Ausgeschlossen ist aber nicht, dass Erweiterungen oder Plugins nur mit PHP 7.1 funktionieren.

Bitte überprüfen Sie eingesetzte Skripte oder Anwendungen, auf Kompatibilität mit höheren PHP-Versionen (mindestens 7.2). Sollte keine Kompatibilität gegeben sein, stellen Sie diese nun bitte her. Die dazu erforderlichen Maßnahmen hängen von der Anwendung bzw. vom Code ab.

Welches Risiko würde bestehen, wenn PHP 7.1 weiter in Betrieb bleibt?

Wir wissen, dass mit der Entwicklung einer neuen Website oder E-Commerce-Anwendung (Shop) Aufwand, Zeit und Kosten verbunden waren und man als Betreiber bestrebt ist, diese Investition möglichst lange auszuwerten. Dennoch sollte im Sinne einer Risikobewertung auch die Gefahr betrachtet werden, die durch nicht geschlossene Sicherheitslücken gegeben ist.

Gerade auch im Hinblick auf verschärfte Datenschutz- und Haftungsregelungen (DSGVO) muss eine ständige Bewertung erfolgen. Wir halten es für geboten, die Version 5.6 zu entfernen, nachdem wir unter Gesichtspunkten eines Investitionsschutzes für unsere Kunden diese Version noch zur Verfügung gestellt hatten.

Die Anwendung lässt sich nicht aktualisieren – was kann ich tun?

Möglicherweise finden Sie keine neueren Versionen der Anwendung, die Sie einsetzen. In diesem Fall müssen Sie abwägen, ob es sich lohnt, den PHP-Code durch einen Experten manuell bearbeiten zu lassen oder die Site komplett neu aufzusetzen, möglicherweise mit einer anderen Anwendung, die mehr Zukunftsfähigkeit verspricht.

Eine pauschale Aussage kann man leider nicht treffen. Zudem kann der Aufwand, nicht mehr weiterentwickelte Anwendungen kompatibel zu PHP 7.2 oder höher zu machen, erheblich sein. Sie müssten einen PHP-Entwickler (Programmierer) mit den Aufgaben betrauen, was Kosten nach sich ziehen wird. Rechnen Sie mit 100 bis 300 Euro pro Stunde.

Unter Umständen ist es sinnvoller, die ganze Website mit einer anderen Anwendung zu realisieren. Welche Anwendung das sein kann, hängt von Typus der Site ab (Onlineshop, Blog, Portfolio-Seite…).

Die unter goneo-clickStart gelisteten Open-Source-Anwendungen halten wir für entsprechend zukunftsfähig, da hinter diesen in der Regel eine große und aktive Entwicklergemeinde steht, viele Installationen ausgeführt worden sind und die Software auf einem aktuellen Stand gehalten wird. Hier finden Sie die goneo-clickStart-Anwendungen: https://goneo.de/clickstart.html

Warum sind die PHP-Versionen auf unterschiedliche Art und Weise eingebunden?

Wir möchten verschiedene Varianten von PHP anbieten, wobei allerdings nur eine als Modul  in den Apache-Webserver eingebunden werden kann. Die Entscheidung für die Version, die als Modul eingebunden wird, fiel auf PHP 7.3 aufgrund der erkennbaren Releasepolitik von PHP.org.

Ob die jeweilige PHP-Version als Modul oder via CGI angesprochen wird, für die meisten Anwendungen nicht entscheidend. Es wird von Geschwindigkeitsvorteilen berichtet, wenn PHP als Modul eingebunden wird. Dies lässt sich allerdings nicht pauschal für alle möglichen Konstellationen und Anwendungen bzw. Skripte so bestätigen.

Welche PHP-Version sollte ich verwenden?

Wir raten eher dazu, die aktuellste Version, die wir als goneo anbieten, zu verwenden, da in diesen Versionen die Weiterentwicklung der PHP-Linie angelegt ist. PHP hat die Eigenschaft, dass neue Funktionen und Befehle hinzukommen während andere zunächst als „deprecated“ gekennzeichnet werden, aber noch funktionieren und mit einer der folgenden Versionen dann entfernt werden.

Das Skript, das eine aufgegebene Funktion verwendet, wird eine Fehlermeldung ausgeben und nicht wie erwartet funktionieren.

Wenn die konkrete Anwendung allerdings nicht mit der neusten Version funktioniert, muss man eine frühere Version verwenden, die noch kompatibel ist. Dies ist so lange nötig bis der Hersteller der Software ein Update veröffentlicht, das die neueste PHP-Version unterstützt.

Warum bietet goneo überhaupt verschiedene PHP-Versionen an?

goneo möchte, dass möglichst viele fertige Kunden-Anwendungen auf den Servern ohne Probleme funktionieren. Einerseits müssen wir der Entwicklung der Technologie Rechnung tragen, andererseits aber auch die Kompatibilitätsanforderungen der von Kunden verwendeten Software beachten.

Oft sind existierende Anwendungen mit neuen PHP-Versionen nicht kompatibel und Updates stehen (noch) nicht zur Verfügung. Grundsätzlich ist goneo eher konservativ hinsichtlich der PHP-Versionen. goneo verwendet nur bewährte und stabile Versionen, keine als experimentell bezeichneten Releases. goneo behält auch ältere PHP-Versionen im Angebot, solange dies sicherheitstechnisch vertretbar erscheint.

Zusammenfassung

Ab 2.3.2020 wird PHP 7.1 bei goneo nicht mehr angeboten. Grund ist, dass PHP 7.1 nicht mehr weiterentwickelt wird und dadurch Sicherheitsrisiken entstehen. Bitte stellen Sie sicher, dass Ihre Websites unter PHP 7.2 oder höher funktionieren.

Ab diesem Termin steht auch die aktuelle stabile Version PHP 7.4 zur Verfügung.

Weiterführende Informationen

Die Roadmap der PHP-Versionen

Die Liste der unterstützen Versionen:
http://php.net/supported-versions.php