WordPress: PHP auf 8.1 aktualisieren & worauf solltest du achten?

PHP 8.1

Vor wenigen Tagen hat Thordis in einem Blogartikel darüber berichtet, dass die weit verbreitete PHP-Version 7.4 ab dem 28. November keine offiziellen Sicherheitsupdates mehr bekommen wird.

Klar, es wird den einen oder anderen Hoster geben, der, entweder kostenlos oder kostenpflichtig, die Version weiterhin unterstützen wird, aber es ist dennoch guter Anlass auf PHP 8.0 oder noch besser auf PHP 8.1 zu aktualisieren. PHP 8.1 wird noch aktiv gepflegt und ist wesentlich performanter als die vorherigen Versionen.

Achtung bei älteren Themes und Plugins

Bevor du jetzt auf PHP 8.0 oder 8.1 aktualisierst, ist es empfehlenswert zu schauen, ob alle Komponenten mit den neueren PHP-Versionen kompatibel sind. Obwohl WordPress offiziell immer noch “nur” einen Beta-Support für PHP 8.0 und 8.1 bietet, so konnten wir bei unseren und bei den Kundenprojekten, die wir betreuen, keine Probleme mit WordPress und PHP 8.0 oder 8.1 feststellen.

PHP 8.0 gibt es seit November 2020, das war etwa einen Monat vor dem Erscheinen von WordPress 5.6. PHP 8.1 wurde im November 2021 veröffentlicht, zwei Monate vor dem Erscheinen von WordPress 5.9. In der Zwischenzeit wurden noch WordPress 6.0 und 6.1 veröffentlicht. Schon allein deswegen kannst du recht sicher sein, dass es zwischen den aktuellen Versionen von WordPress und PHP keine nennenswerten Probleme geben sollte. Zumindest sind uns aus der Praxis keine bekannt.

Wo allerdings Probleme auftreten können, sind bei Themes und Plugins. Vor allem bei den älteren Exemplaren, was an sich logisch ist. Wenn ich ein Theme oder Plugin entwickelt habe, als PHP 8.0 noch in der Planung war und seitdem keine Aktualisierung nachgereicht habe, dann ist die Gefahr hoch, dass es Probleme mit den neuen PHP-Versionen geben könnte.

Leider steht uns hierfür keine Lösung mehr in Form eines Plugins zur Verfügung. Der PHP Compatibility Checker prüft nur bis PHP 7.3. Das heißt, dass du, um sicherzugehen, das Theme und die Plugins einzeln überprüfen musst.

WordPress-Plugins: Suche nach Plugins, die mit PHP 8.1 kompatibel sind
Über die Suche auf WordPress.org kannst du Plugins herausfiltern, die mit einer bestimmten Version kompatibel sind.

Mit der Suchfunktion auf WordPress.org kannst du dir die Plugins anzeigen lassen, die mit PHP 8.0 und 8.1 kompatibel sind. Aber damit bekommst du nur die Plugins angezeigt, wo der Autor auch die konkrete Version eingetragen hat. Häufig steht nur der Satz: “Kompatibel mit PHP 5.6 und höher”. Da hilft es nur entweder in die Dokumentation zu schauen oder den Autor zu fragen.

Bei größeren Projekten auf einem Klon testen

Auch wenn jetzt alle Komponenten auf dem Papier mit PHP 8.0 oder 8.1 kompatibel sind, würde ich dir bei größeren oder stark angepassten Projekten immer empfehlen, die aktuelle Live-Website zu klonen und dort den Umstieg auf eine höhere PHP-Version zu testen.

PHP-Version bei all-inkl.com wechseln
Bei all-inkl.com ist der Wechsel auf eine höhere PHP-Version einfach und auch der Weg zurück ist in aller Regel kein Problem.

Wir hatten neulich bei einem größeren Kundenprojekt, dass der vorherige Dienstleister nicht alle Anpassungen dokumentiert hat. Offiziell war das Projekt kompatibel, mit PHP 8.0 auf dem Klon konnten wir dann allerdings Probleme erkennen und beheben. Somit hat uns der zusätzliche Test auf einer Klon-Installation einige graue Haare erspart. 😀

Aber auch wenn du dir den Schritt sparst und direkt die Live-Seite aktualisierst, ist ein Wechsel zurück auf eine niedrigere Version in der Regel kein Problem: zumindest bei all-inkl nicht. Ist euch ein Hoster bekannt, wo das nicht möglich ist?

Und was, wenn ein PHP-Update nicht möglich ist?

Wenn die Anpassungen am Projekt so stark sind, dass ein Update auf aktuelle PHP-Version nicht ohne Weiteres möglich ist, dann hast du je nach Anbieter ein Problem.

Bei all-inkl hast du relativ lange Ruhe, um dich um eine alternative Lösung zu kümmern. Andere Hoster bieten zum Beispiel einen kostenpflichtigen erweiterten Support für ältere PHP-Versionen, andere Hoster – wie etwa Host Europe – aktualisieren einfach dein Account auf die höhere PHP-Version.

Daher würde ich dir auf jeden Fall raten, dass du dich bald, auf jeden Fall vor dem 28. November informierst, wie dein Hoster hier verfährt und wie der Stand der Dinge bei deinem Projekt ist. An diesem Tag hört der offizielle Support für PHP 7.4 auf.

Wenn du nicht weiter kommst, entweder weil du keine Zeit dafür hast, oder weil bei den vielen Informationen nicht abschätzen kannst, was auf dich zukommen könnte. Dann kannst du dich gerne an uns wenden und wir schauen gemeinsam, wie wir dir helfen können.

WordPress-Wartung und Betreuung

Auf der Suche nach einer zuverlässigen Agentur für die Betreuung und Wartung der WordPress-Website? Profitiere auch du von unserer 19-jährigen Erfahrung!

Nachtrag, 08.02.2023: Debug Modus

Es kann sich lohnen, auch vor dem Umzug auf PHP 8.x den Debug Modus von WordPress zu aktivieren. Viele der späteren Fehler kündigen sich schon vorher an. Schaue dir die wp-config.php und die .htaccess genauer an. Über die Jahre kommen durch die Plugins, durch eigene Anpassungen und manchmal durch die Hoster einige Altlasten zusammen. In den Kommentaren hier unten gibt es ein paar Hinweise dazu.

Wir arbeiten seit 20 Jahren mit WordPress und bieten diverse Dienst­leistungen rund um das System an. Kontaktiere uns für weitere Informationen oder für ein Angebot.

Verwandte Beiträge:

15 Kommentare

  1. “Häufig steht nur der Satz: “Kompatibel mit PHP 5.6 und höher”.”

    Man sollte diesen Satz gleich auch als Qualitätsmerkmal sehen – als negatives.
    Wie gut kann das Plugin sein, wenn der Autor schon daran scheitert, die korrekten unterstützen Versionssnummern einzutragen?

    1. Ich weiß nicht, auf welche Fundstelle Ihr Eure Kritik an den Angaben wie “Kompatibel mit PHP 5.6 und höher” bezieht – falls es die Infobox oben rechts auf der Detailseite eines jeden Plugins im Repository ist, dann gebe ich folgendes zu bedenken:

      Im Entwickler-Handbuch für WordPress-Plugin sind die Angaben im Plugin-Header dokumentiert. Dort heißt es bei “Available header fields”: “Requires PHP: The minimum required PHP version.”
      Also die *mindestens* erforderliche PHP-Version. (Explizit NICHT “alle kompatiblen Versionen”.)
      https://developer.wordpress.org/plugins/plugin-basics/header-requirements/#header-fields

      Da wäre ein Eintrag wie “5.6, 7.2, 7.4, 8.0” offensichtlich falsch. Ob dieser trotzdem durch den Review-Prozeß käme, kann ich aus dem Stand nicht sagen.

      In der readme.txt eines Plugins landet also ein Eintrag wie z.B. “Requires PHP: 5.5”
      Da steht nichts von “xy oder höher” – das kommt allein aus der Textvorgabe des Templates im Repository. Im Englischen lautet der Eintrag bspw.
      “PHP Version: 5.6.20 or higher” und im Deutschen eben analog übersetzt “PHP-Version:
      5.6.20 oder höher”.

      Ich sehe da kein Versäumnis seitens der Entwickler und erst recht kein Qualitätsmerkmal.

      1. In https://developer.wordpress.org/plugins/wordpress-org/how-your-readme-txt-works/
        wir es sogar nochmal explizit gesagt:

        “Requires PHP – (OPTIONAL) The required minimum version of PHP needed for use with this plugin. This This should be numbers only, so ‘7.0’ and not ‘PHP 7.0’”

        Und der Parameter “testet up to” bezieht sich auf die WordPress-Version, nicht PHP:
        “Tested up to – The version of WordPress that the plugin has been tested against. This field ignores minor versions, as plugins shouldn’t break with a minor update. This means a plugin only need to define the major version it is tested against and the WordPress.org plugin directory will automatically add the minor version. This should be numbers only, so ‘4.9’ and not ‘WP 4.9’”

  2. Moin,
    danke für die Infos. Host Europe war so konsequent und hat einfach PHP 7.4 abgeschaltet und alle Websites auf 8.0 umgestellt. Das traf diverse Kunden etwas hart, weil deren Websites nicht mehr liefen.
    Allerdings noch eine Frage: Ich habe eine Website mit Divi und WooCommerce, die unter 8 oft nicht funktioniert und immer wieder nicht erreichbar ist. Unter 7.4 läuft sie deutlich stabiler. Alles ist 8.0/8.1 kompatibel, aber ich finde leider keinen Hebel das zu verbessern – Gibt es dazu Tipps?

    Gruß
    Wolfram

  3. Hallo,

    ich schreibe mal hier, weil ich (gefühlt) alles ausprobiert habe und nicht mehr weiterkomme.

    Ich habe meine WordPressseite bei strato liegen und die Umstellung auf PHP 8 funktioniert einfach nicht. Ich habe so ziemlich alle Tipps von diversen Seiten probiert (plugins deaktivieren, debug mode, standard theme, usw.) und jedes mal, wenn ich auf PHP 8 umstelle, bekomme ich einen whitescreen. Stelle ich zurück auf PHP 7.4 läuft wieder alles einwandfrei.

    Habt ihr vielleicht eine Idee, woran es liegen könnte? Den Link zu meiner Homepage habe ich angegeben.

    Danke und viele (verzweifelte) Grüße

    Tobias

    1. Hallo Tobias,
      wenn wenn WP aktuell ist, du alle Plugin deaktiviert und auf ein Standard-Theme umgestellt hast, bleibt im Prinzip nur noch die wp-config.php, die nicht kompatiblen Code enthalten kann – evtl. sogar auskommentiert! Ansonsten stellt sich die Frage, ob noch andere Skripte laufen?

    2. Hi Tobias, hatte auch das Problem.
      Konnte es mit dem debug mode einschränken.
      Vielleicht ist es bei dir ja das gleiche.

      Bei mir stand in der wp-config.php:
      define( “WP_AUTO_UPDATE_CORE”, minor );
      habe das abgeändert auf:
      define( “WP_AUTO_UPDATE_CORE”, true );
      Jetzt läuft es wieder.

  4. Vielleicht hilft es jemandem weiter. Ausgangssituation: Hosting bei Strato! WordPress und Theme sowie alle Plugins sind auf dem neusten Stand. Nach dem PHP Update von v.74 auf v.8.2. gabe es den berüchtigten “White Screen of Death”. Nichts ging mehr! Lösung: Erstellung einer neuen wp-config.php auf Basis der neusten wp-config-sample.php. Da es sich um eine ältere Installation handelte, gab es ein Kompatibilitätsproblem von der alten wp-config.php mit PHP v8.2. In der Regel wird die wp-config.php bei regulären Updates nicht berührt und dies führte zum Problemen.

    1. Hi Felix, auch ich bin mit einem Kundenprojekt auf Strato. Die berüchtigte White-Side hatte ich bereits “nur” nach dem Update auf WordPress 6.1.1. Denn in der wp-config.php stehen auch Einträge von strato mit drin. Vielleicht lag es auch daran?

    2. Hallo Felix, kannst du bitte “neuen wp-config.php auf Basis der neusten wp-config-sample.php. ” etwas genauer ausführen? Ich habe eine nicht PHP8.x compatible Seite bei STRATO.

      Danke dir!
      Grüße, Klaus

      1. Ich denke was Felix meint, ist folgendes:
        Jede WP-Installation hat neben der wp-config.php auch eine wp-config-sample.php. Diese wird bei Updates erneuert – im Gegensatz zur wp-config.php. Nun haben sich dort über die Jahre aber Änderungen ergeben und so kann es vorkommen, dass hier Code enthalten ist, der mit der neuen PHP-Version nicht kompatibel ist.
        Um das auszuschließen, erstellst du am besten eine Kopie der wp-config-sample.php und trägst dort deine Datenbank-Zugangsdaten ein, die stehen ja in deiner aktuellen wp-config.php. So hat man es im Übrigen bis vor einigen Jahren auch bei jeder neuen WP-Installation gemacht. Diese kopierte und bearbeitete Datei benennst du dann um in wp-config.php und lädst sie auf deinen Server hoch, so dass die aktuelle wp-config.php (von der du vorher ein Backup gemacht hast!) überschrieben wird. Alternativ kannst du die ursprüngliche wp-config.php auch umbenennen und die neue Datei hochladen.

  5. Danke für die Informationen.
    Auf einem Kundenprojekt bekomme ich in der debug.log-Datei immer wieder diese Warnungen:

    PHP Deprecated: Function add_option was called with an argument that is deprecated since version 2.3.0 with no alternative available. in [PFAD]/wp-includes/functions.php on line 5707

    PHP Deprecated: Die Funktion WP_User->id wurde mit einem Argument aufgerufen, das seit Version 2.1.0 veraltet ist! Verwende stattdessen WP_User->ID. in [PFAD]/wp-includes/functions.php on line 5697

    Es funktioniert aber alles. Ich nehme an, dieser Code wird von den Entwicklern aktualisiert, sobald PHP 8 nicht mehr beta ist?

  6. Hallo zusammen,
    vielen, vielen Dank für die Hinweise.
    In der wp-config.php meiner Installation bei Strato war direkt ein Syntaxfehler drin.
    Ich habe die Datei nicht komplett neu erstellt sondern nur die Einträge nach
    /* That’s all, stop editing! Happy blogging. */
    geändert bzw. auskommentiert. Und schon ging alles mit 8.0.
    Bei der Strato Hilfe Seite keinerlei Hinweis darauf.
    Vielen Dank nochmals und viele Grüße
    Kerstin

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert