Wichtige Information: Umstellung veralteter PHP-Versionen auf PHP 8.2

Die Programmiersprache PHP ist die technische Grundlage vieler Websites, Content-Management-Systeme und Webanwendungen — darunter zum Beispiel WordPress, Joomla, TYPO3, Shopware und viele individuelle Webseiten.

Damit Websites sicher, stabil und zukunftsfähig betrieben werden können, müssen auch die eingesetzten PHP-Versionen regelmäßig aktualisiert werden. Die PHP-Versionen 7.2, 7.3, 7.4, 8.0 und 8.1 haben inzwischen offiziell das Ende ihres Lebenszyklus erreicht.
Das bedeutet: Für diese Versionen werden vom PHP-Projekt keine regulären Sicherheitsupdates und Fehlerkorrekturen mehr bereitgestellt. Die offizielle PHP-Dokumentation beschreibt den Lebenszyklus so, dass eine PHP-Version nach dem Ende des Supportzeitraums als „End of Life“ gilt und nicht mehr unterstützt wird.  

Warum ist die Umstellung notwendig?

Veraltete PHP-Versionen können langfristig ein Sicherheitsrisiko darstellen. Wenn neu entdeckte Schwachstellen nicht mehr durch offizielle Updates geschlossen werden, kann dies Auswirkungen auf die Sicherheit, Stabilität und Kompatibilität einer Website haben.

Eine aktuelle PHP-Version bietet in der Regel mehrere Vorteile:

  • bessere Sicherheit durch weiterhin bereitgestellte Sicherheitsupdates
  • höhere Stabilität im laufenden Betrieb
  • bessere Kompatibilität mit aktuellen Versionen von WordPress, Plugins, Themes und anderen Webanwendungen
  • häufig auch eine bessere Performance

Umstellung auf PHP 8.2

Aus diesem Grund werden alle Domains, die derzeit noch mit einer veralteten PHP-Version betrieben werden, auf PHP 8.2 umgestellt.

PHP 8.2 befindet sich aktuell im Sicherheits-Support und erhält noch Sicherheitskorrekturen. PHP 8.1 und ältere Versionen gelten hingegen inzwischen als abgekündigt beziehungsweise nicht mehr offiziell unterstützt.  

Die Umstellung erfolgt, um den sicheren und zuverlässigen Betrieb der gehosteten Websites weiterhin bestmöglich zu gewährleisten.

Was bedeutet das für meine Website?

In den meisten Fällen läuft eine Website nach der Umstellung problemlos weiter. Moderne Versionen von WordPress, Joomla, TYPO3, Shopware sowie viele aktuelle Plugins und Themes unterstützen PHP 8.2 bereits.

Bei älteren Websites, veralteten Plugins, alten Themes oder individuell entwickelten Anwendungen kann es jedoch vorkommen, dass Anpassungen notwendig sind. Typische Ursachen sind zum Beispiel veraltete Funktionen, die in neueren PHP-Versionen nicht mehr unterstützt werden.

Was sollte ich als Kunde tun?

Bitte prüfe nach der Umstellung kurz, ob deine Website wie gewohnt funktioniert. Achte dabei besonders auf:

  • Startseite und wichtige Unterseiten
  • Kontaktformulare
  • Shop-Funktionen, falls vorhanden
  • Login-Bereiche
  • individuelle Funktionen oder Erweiterungen

Sollten nach der Umstellung Probleme auftreten oder wenn du dir unsicher bist, ob deine Website mit PHP 8.2 kompatibel ist, melde dich bitte bei mir.

Unterstützung bei Problemen

Wenn Support notwendig ist, helfe ich gerne bei der Prüfung und Anpassung deiner Website.

Bitte wende dich in diesem Fall direkt an mich. Gemeinsam lässt sich prüfen, ob ein Plugin, Theme oder eine individuelle Programmierung aktualisiert oder angepasst werden muss.

Fazit

Die Umstellung auf PHP 8.2 ist ein wichtiger Schritt, um Websites weiterhin sicher, stabil und zukunftsfähig zu betreiben. Veraltete PHP-Versionen sollten nicht dauerhaft eingesetzt werden, da sie keine offizielle Unterstützung mehr erhalten und dadurch unnötige Sicherheitsrisiken entstehen können.

Bei Fragen oder Problemen im Zusammenhang mit der Umstellung stehe ich selbstverständlich zur Verfügung.

Erinnerung: Ende der Unterstützung von PHP 7.4

In der sich ständig weiterentwickelnden Welt der Programmiersprachen ist es unerlässlich, mit den neuesten Versionen Schritt zu halten. Eine solche Situation ergibt sich jetzt für PHP 7.4, da es seit Ende 2022 nicht mehr unterstützt wird und keine Sicherheitsupdates mehr erhält. In diesem Blogartikel werden wir genauer auf die Bedeutung dieses Wechsels eingehen und warum es wichtig ist, auf neuere PHP-Versionen zu migrieren.

Hintergrund

PHP, eine der beliebtesten serverseitigen Skriptsprachen, wird von Millionen von Websites weltweit eingesetzt. Mit jeder neuen Version werden Verbesserungen hinsichtlich Leistung, Funktionalität und Sicherheit eingeführt.

PHP 7.4, das im November 2019 veröffentlicht wurde, brachte eine Reihe von Funktionen und Verbesserungen mit sich, darunter Unterstützung für Typdeklarationen, verbesserte Performance und eine bessere Fehlerbehandlung.
Allerdings wurde der Support für PHP 7.4 Ende 2022 eingestellt, was bedeutet, dass es keine weiteren Updates oder Bugfixes mehr geben wird.

Warum ein Upgrade wichtig ist:

  1. Sicherheitslücken: Mit dem Ende des Supports für PHP 7.4 werden keine Sicherheitsupdates mehr bereitgestellt. Das bedeutet, dass neu entdeckte Schwachstellen und Sicherheitslücken nicht behoben werden, was Ihr System anfällig für potenzielle Angriffe macht. Durch ein Upgrade auf eine neuere PHP-Version erhalten Sie Zugang zu den neuesten Sicherheitspatches und halten Ihre Anwendung sicher.
  2. Leistungsoptimierung: Neuere PHP-Versionen bieten in der Regel verbesserte Performance und Effizienz. Durch den Wechsel zu einer neueren Version können Sie von optimierten Funktionen und einem besseren Ressourcenmanagement profitieren. Dies kann zu schnelleren Ladezeiten Ihrer Website führen und eine bessere Benutzererfahrung bieten.
  3. Neue Funktionen und Verbesserungen: Aktuelle PHP-Versionen bringen regelmäßig neue Funktionen und Verbesserungen mit sich, die Ihnen helfen können, Ihre Anwendung weiterzuentwickeln. Durch ein Upgrade können Sie von den neuesten Sprachfunktionen, Bibliotheken und Tools profitieren, um Ihre Entwicklungseffizienz zu steigern und innovative Funktionen zu implementieren.

Wie kann der Wechsel vollzogen werden:

  1. Überprüfen der Kompatibilität: Bevor Sie ein Upgrade auf eine neuere PHP-Version durchführen, sollten Sie sicherstellen, dass Ihre Anwendung mit der gewählten Version kompatibel ist. Einige ältere Funktionen oder Codefragmente könnten in neueren Versionen nicht mehr unterstützt werden. Überprüfen Sie daher Ihre Anwendung gründlich und führen Sie gegebenenfalls erforderliche Anpassungen durch.
  2. Durchführen eines schrittweisen Upgrades: Ein schrittweiser Ansatz kann Ihnen helfen, potenzielle Probleme zu identifizieren und zu beheben. Beginnen Sie mit einem Test- oder Entwicklungssetup, um das Upgrade zu testen und sicherzustellen, dass Ihre Anwendung wie erwartet funktioniert. Führen Sie anschließend das Upgrade auf Ihrer Produktionsumgebung durch.

Fazit

Das Ende des Supports für PHP 7.4 markiert einen wichtigen Meilenstein für die PHP-Entwicklungsgemeinschaft.
Es ist von entscheidender Bedeutung, auf neuere Versionen zu migrieren, um Sicherheitsrisiken zu minimieren, die Leistung zu optimieren und von den neuesten Funktionen und Verbesserungen zu profitieren. Nehmen Sie sich die Zeit, Ihre Anwendung zu überprüfen und den Wechsel sorgfältig zu planen. Durch ein reibungsloses Upgrade können Sie sicherstellen, dass Ihre PHP-Anwendung weiterhin auf dem neuesten Stand ist und den Anforderungen der sich ständig verändernden Weblandschaft gerecht wird.

Sollten Komplikationen bei Ihnen auftreten oder Rückfragen bestehen, stehen wir Ihnen selbstverständlich jederzeit gerne zur Verfügung.

Update von PHP und Apache

Wir aktualisieren zwischen dem 21.10. und 23.10.2019 unsere PHP- und Apache-Versionen auf den Webservern.
Durch den dafür notwendigen Neustart des Webservers kommt es bei Ihren Webseiten zu einer Nichterreichbarkeit von wenigen Minuten.

Änderungen der PHP-Versionen

  • 7-73LATEST = PHP 7.3.10 (zuvor: 7.3.6)
  • 7-73STABLE = PHP 7.3.6
  • 7-72LATEST = PHP 7.2.23 (zuvor: 7.2.19)
  • 7-72STABLE = PHP 7.2.19 (zuvor: 7.2.11)
  • 7-72LEGACY = PHP 7.2.11
  • 7-71LATEST = PHP 7.1.32 (zuvor: 7.1.30)
  • 7-71STABLE = PHP 7.1.30 (zuvor: 7.1.23)
  • 7-71LEGACY = PHP 7.1.23 (zuvor: 7.1.15)
  • 7-70LATEST = PHP 7.0.33 (zuvor: 7.0.32)
  • 7-70STABLE = PHP 7.0.32 (zuvor: 7.0.28)
  • 7-70LEGACY = PHP 7.0.28 (zuvor: 7.0.24)
  • 5-56LATEST = PHP 5.6.40 (zuvor: 5.6.38)
  • 5-56STABLE = PHP 5.6.38 (zuvor: 5.6.34)
  • 5-56LEGACY = PHP 5.6.34 (zuvor: 5.6.31)

Bitte beachten Sie, dass sich die Versionen noch ändern können, falls bis zum 21.10.2019 eine neue PHP-Version erscheint.

Änderung der Apache-Webserver-Version

Der Apache-Webserver wird auf die neuste verfügbare Version 2.4.41 (zuvor: 2.4.39) aktualisiert.

Sollten Komplikationen bei Ihnen auftreten oder Rückfragen bestehen, stehen wir Ihnen selbstverständlich jederzeit gerne zur Verfügung.

Assoziative Arrays in PHP 7

Wie vor ein paar Tagen angekündigt, werden wir demnächst die alte PHP-Version 5 deaktivieren.

Der Umstieg auf die neuere Version PHP 7 ist im Allgemeinen problemlos möglich, jedoch kommt es gegebenenfalls zu Problemen mit assoziativen Arrays, die in PHP 7 leicht anders deklariert werden müssen.

Bei assoziativen Arrays, auf dessen Values man nicht mit einem numerischen Keys á la $user[0] oder $user[1] zugreift, sondern Namen dafür benutzt (zum Beispiel: $user[id] oder $user[name]), so führt dies in PHP 7 zu einer Warnung im Logfile:

PHP Warning: Use of undefined constant name – assumed ’name‘ (this will throw an Error in a future version of PHP)

Aus dieser alten Notation:

$user[name]

Sollte für PHP 7 also diese Notation werden:

$user['name']

Um nicht händisch via Suchen & Ersetzen durch alle Codefiles gehen zu müssen, kann man sich mit diesem regulären Ausdruck die Arbeit vereinfachen:

RegEx-Ausdruck für assoziative Arrays in PHP 7

Mit einem einfachen regulären Ausdruck kann man sich viel Handarbeit im Code ersparen:

Suchen nach:

\[([a-zA-Z]+)\]

Ersetzen mit:

\['\1'\]

Das Suchmuster sucht nach den öffnenden und schließenden eckigen Klammern von Arrays [ + ] und prüft, ob darin alphabetische Zeichen von a bis z oder A bis Z drin vorkommen (mindestens eines, aber beliebig viele).

Lässt man das einmal über alle seine Daten laufen, sind die assoziativen Arrays korrekt ausgezeichnet. Ältere PHP-Versionen haben über diese, eigentlich falsche, Notation noch gütig hinweggesehen, aber bald ist es damit vorbei und die warning messages sind ein erstes Anzeichen dafür.

Apostroph escapen

Man muss natürlich kein Apostroph nehmen, normale Anführungszeichen eignen sich dafür auch. Nutzt man als Array-Index beispielsweise einen Namen, der ein Apostroph enthält (Ku’damm) ist es einfacher, direkt auf Anführungszeichen auszuweichen.

Nutzt man Apostrophe, kann man die in den values enthaltenen Apostrophe auch escapen: Ku\‘damm.

Deaktivierung von PHP-Version 5

Aus Sicherheitsgründen stellen wir die Unterstützung veralteter PHP-Versionen ein. Ab dem 02. März 2020 werden wir die PHP-Version 5 endgültig deaktivieren.

Um Ihnen die Umstellung zu erleichtern, können Sie die PHP-Version 5 bis zu dem genannten Termin weiter nutzen, wir übernehmen jedoch keine Haftung für etwaige bestehende oder neue Sicherheitslücken.

Eine genaue Übersicht Ihrer betroffenen Domains finden Sie unter PHP-Einstellungen, in Ihrem Kundencenter.

Im Kundencenter finden Sie auch eine Übersicht der neuen und weiterhin unterstützten PHP-Versionen.
Bitte wählen Sie hier mindestens PHP in der Version 7.2 oder höher aus.

Bitte prüfen Sie anschließend unbedingt die Funktionalität Ihrer Webseite oder führen Sie vorab einen Test im Staging-System durch.

Sollten Komplikationen bei Ihnen auftreten oder Rückfragen bestehen, stehen wir Ihnen selbstverständlich jederzeit gerne zur Verfügung.

Update von PHP, Apache und FTP

mit dieser E-Mail möchten wir Sie über eine Aktualisierung der PHP- und Apache-Versionen, sowie des FTP-Dienstes auf unseren Webservern informieren.

PHP-Version und Apache Webservers:

Zwischen dem 22.10. und 25.10.2018 ab je 07:00 Uhr werden wir neue Versionen von PHP, Apache und dem FTP-Dienst auf den Systemen verteilen. Durch den dafür notwendigen Neustart des Webservers kommt es zu einer Nichterreichbarkeit von wenigen Minuten

PHP-Aktualisierungen

Die PHP-Versionen ändern sich wie folgt:

  • 7-72LATEST = PHP 7.2.10 (zuvor: 7.2.3)
  • 7-71LATEST = PHP 7.1.22 (zuvor: 7.1.15)
  • 7-70LATEST = PHP 7.0.32 (zuvor: 7.0.28)
  • 5-56LATEST = PHP 5.6.38 (zuvor: 5.6.34)

Bitte beachten Sie, dass sich die Versionen noch ändern können, falls bis zum 22.10.2018 eine neue PHP-Version erscheint.

Aktualisierung vom Apache-Webserver

Der Apache-Webserver wird auf die neuste verfügbare Version 2.4.35 (zuvor: 2.4.29) aktualisiert.

Aktualisierung des FTP-Dienstes

Sollten Sie während des Updates via FTP zu Ihrem Webserver verbunden sein, wird die Verbindung unterbrochen und Sie können sie direkt neu aufbauen.

Bitte beachten Sie, dass die neue Version eine verschlüsselte Verbindung (FTPS) nur noch über TLS 1.2 unterstützt. Das bedeutet, dass Sie ein aktuelles FTP-Programm benötigen, um sich verschlüsselt über Ihren FTP-Account zu Ihrem Webserver zu verbinden. Sollten Sie nach dem Update keine verschlüsselte Verbindung mehr aufbauen können oder eine Fehlermeldung erhalten, aktualisieren Sie bitte Ihr FTP-Programm oder nutzen Sie SFTP, sofern das Ihr FTP-Programm unterstützt.

Sollten Komplikationen bei Ihnen auftreten oder Rückfragen bestehen, stehen wir Ihnen selbstverständlich jederzeit gerne zur Verfügung.

PHP Errorlogging selektiv aktivieren

Insbesondere bei der Entwicklung ist es vorteilhaft, das Errorlogging von PHP zu aktivieren.
Auf reinen Entwicklungssystemen erfolgt die Ausgabe der Fehler zumeist direkt im Browserfenster.

Wenn man jedoch auf Produktivsystemen arbeitet und die Fehlermeldungen anderen Webseitenbesuchern nicht anzeigen lassen möchte, hat man die Möglichkeit, die Fehler auch in eine Datei umzulenken.

Mit den folgenden Einstellungen in der .htaccess-Datei werden auftretende PHP-Fehlermeldungen direkt in eine Datei auf dem Server geschrieben.

# Dem Nutzer keine Fehler anzeigen
  php_flag display_startup_errors off
  php_flag display_errors off
  php_flag html_errors off
# Die Fehler in eine Datei schreiben
  php_flag log_errors on
  php_value error_log /pfad/zum/phperror.log

Der /pfad/zum/phperror.log muss natürlich entsprechend angepasst werden.

Wichtig: Die Datei muss bereits existieren und beschreibbar sein!