PHP-Aktualisierung für WordPress – Schritt für Schritt

Februar 2023 Twitter @ItDoorlu

PHP-Aktualisierung für WordPress – Schritt für Schritt

Die PHP-Aktualisierung zeige ich für XAMPP Windows auf dem Localhost. Bei einem Echtsystem gehe ich davon aus, dass Ihr WordPress Hoster PHP aktualisiert oder Sie das im Dashboard Ihres Hosters mit ein paar Klicks selber PHP für Ihre WordPress Website aktualisieren.

In diesem Fachartikel wird die PHP Aktualisierung von PHP 7.3.11 auf PHP 8.0.27 beschrieben. Das hier vorgestellte Lösungsschema funktionierte auch für eine PHP Aktualisierung auf PHP 8.2.1.

Ob dieses Lösungsschema auch für PHP Aktualisierung vonPHP8 auf PHP9 anwendbar ist, bleibt abzuwarten.

Wann ist eine PHP-Aktualisierung bei WordPress notwendig?

WordPress empfiehlt im Dashboard die PHP Aktualisierung. So kann diese Empfehlung von WordPress dann aussehen.

WordPress empfiehlt PHP-Aktualisierung
WordPress empfiehlt PHP-Aktualisierung

Da Sie nicht erfahren, wie Sie PHP aktualisieren, wenn Sie auf diesen blauen Button klicken, wurde dieser Fachartikel geschrieben.

Außerdem kann es möglich sein, dass Sie wegen Ihrem veralteten PHP ein bestimmtes Plugin nicht installieren können. Hier ein Beispiel:

Wegen WordPress Plugin PHP-Aktualisierung notwendig
Wegen WordPress Plugin PHP-Aktualisierung notwendig

Auch hier erfahren Sie nicht, wie Sie PHP aktualisieren. Auch deswegen wurde dieser Fachartikel geschrieben.

Falls Sie sich übrigen für kostenlose WordPress Chat Plugins interessieren sollten, können Sie hier nachlesen:

Live Chat Plugins für WordPress – ein Überblick -1 Favorit

Wenn Sie keine Empfehlung von WordPress erhalten, PHP zu aktualisieren und Sie Bedenken haben, ob das verwendete PHP sehr alt sein könnte, können Sie in WordPress direkt nachschauen, welche Version Sie von PHP Sie benutzen.

Siehe unten Kapitel „Kontrolle der aktuellen PHP-Version in WordPress auf dem Localhost“.

Vorbereitende Tätigkeiten

Allgemein wird empfohlen, vor der PHP Aktualisierung ein Backup zu erstellen. Das macht aber nur Sinn, wenn das Backup das alte PHP umfasst. Zerschießen Sie das PHP gelangen Sie nicht mehr in Ihr WordPress und können somit wahrscheinlich Ihr Backup nicht einsetzen. Dieser Fachartikel zeigt daher einige Kniffe, wie man sich auch ohne Backup bei der PHP Aktualisierung absichern kann.

Allgemein wird empfohlen, vor der PHP Aktualisierung alle Plugins zu deaktivieren. Da auf meinem Testsystem nur wenige Plugins installiert sind, habe ich mir diese Mühe nicht gemacht.

Auch das Plugin „PHP Compatibility Checker“ oder vergleichbare Plugins habe ich nicht eingesetzt, da berichtet worden ist, dass diese nicht ganz fehlerfrei sein sollen.

Statt all dieser vorbereitenden Tätigkeiten habe ich die PHP-Aktualisierung so gestaltet, dass ich die PHP-Aktualisierung sofort zurückdrehen kann.

Mit diesem Fachartikel wird sowieso keine Haftung oder Gewähr übernommen, dass bei Ihnen die PHP-Aktualisierung reibungslos gelingt.

Änderungen testen

Es ist fraglich, ob man jede einzelne Änderungen testen sollte, da nicht jede einzelne Änderung ausreicht, um das gewünschte Ergebnis herbeizuführen. Besser dürfte es ein, alle in diesem Fachartikel erwähnten Änderungen durchzuführen und danach zu testen, ob das XAMPP Control Panel fehlerfrei aufrufbar ist und ob ein Login in WordPress auf Ihrem Localhost gelingt.

Unabhängig davon, wie oft Sie Ihre Änderungen testen möchten, nicht jede Änderung lässt sich dadurch testen, dass man das XAMPP Control Panel beendet und wieder startet und die Login Maske von WordPress aufruft.

Ich hatte mir daher angewöhnt, den PC neu zu starten und erst dann das XAMPP Control Panel zu laden und anschließend versuchen, sich bei WordPress anzumelden.

Der erste Schritt: Download des neuen PHP

Download Möglichkeit1

 

Hier können Sie PHP downloaden:

https://windows.php.net/download#php-8.0

Wenn Sie diese Webpage aufrufen, sieht das bei Ihnen wahrscheinlich anders aus, als bei dem folgenden Screenshot, da es ständig neue PHP-Versionen gibt.

PHP Version 8.0.27 downloaden
PHP Version 8.0.27 downloaden

Wichtig ist, dass Sie PHP mit der Variante „Thread Safe“ herunterladen.

Ich lade die Datei php-8.0.27-Win32-vs16-x64.zip herunter:

Das sind dann die Verzeichnisse von php-8.0.27.

Verzeichnisse von php-8.0.27
Verzeichnisse von php-8.0.27

Download Möglichkeit 2

Auch hier können Sie PHP downloaden:

https://windows.php.net/download#php-8.2

Wenn Sie diese Webpage aufrufen, sieht das bei Ihnen wahrscheinlich anders aus, als bei dem folgenden Screenshot, da es ständig neue PHP-Versionen gibt.

PHP Version 8.2.1 downloaden
PHP Version 8.2.1 downloaden

Auch hier ist wichtig, dass Sie PHP mit der Variante „Thread Safe“ herunterladen.

Ich lade die Datei: php-8.2.1-Win32-vs16-x64 herunter:

Das sind dann die Verzeichnisse von php-8.2.1.

Verzeichnisse von php-8.2.1
Verzeichnisse von php-8.2.1

Ich habe die PHP Aktualisierung sowohl mit php-8.0.27. als auch mit php-8.2.1. erfolgreich getestet. Das bedeutet, dass es keine Rolle gespielt hatte, welche der beiden Download Möglichkeiten ich benutzt hatte.

Sowohl php-8.0.27. als auch mit php-8.2.1. haben deutlich weniger Verzeichnisse als mein altes PHP 7.3.11. So fehlt z. B. das Verzeichnis sasl2 in den beiden neuen PHP-Versionen.

Das sind die Verzeichnisse von PHP 7.3.11.

Verzeichnisse von PHP 7.3.11
Verzeichnisse von PHP 7.3.11
  • Lassen Sie sie sich bitte nicht irritieren, falls Ihr neues PHP weniger Verzeichnisse haben sollte, als Ihr altes PHP.

Trotz deutlich weniger Verzeichnissen gelang bei mir die PHP Aktualisierung sowohl mit php-8.0.27. als auch mit php-8.2.1.

Das alte PHP gegen das neue PHP austauschen

Nachdem nun das neue PHP im Downloadverzeichnis von Windows liegt, geht es nun darum, das alte PHP gegen das neue PHP in XAMPP austauschen

Als erstes ändere ich den Namen des alten php-Verzeichnis um. Z. B. in altphp.

Falls ich mit dem neuen PHP Schiffbruch erleide, kann ich dann auf das alte PHP zurückgreifen.

  • Das ist sicherer als das alte php-Verzeichnis einfach zu löschen.

In einem zweiten Schritt lege ich unter dem Verzeichnis C:\xampp\ das Verzeichnis php an. So kann das dann aussehen.

Neu angelegtes PHP Verzeichnis bei C:\xampp\
Neu angelegtes PHP Verzeichnis bei C:\xampp\

In einem dritten Schritt kopiere ich die Dateien der ZIP-Datei „php-8.0.27-Win32-vs16-x64“ in das neue php-Verzeichnis.

Damit ist das alte PHP gegen das neue PHP ausgetauscht, aber die Aktualisierung von PHP noch nicht beendet.

2 Änderungen in der Datei php.ini des neuen PHP durchführen

Wo ist die Datei php.ini?

Sowohl der Ordner php-8.0.27-Win32-vs16-x64 als auch der Ordner php-8.2.1-Win32-vs16-x64 enthalten nicht die Datei php.ini.

Lösung: Ich kopiere die Datei php.ini-production und nenne die Kopie php.ini. Dadurch wird die Datei php.ini zum Typ Konfigurationseinstellungen.

So kann das dann im Verzeichnis C:\xampp\php\ aussehen.

Neu angelegte Datei php.ini
Neu angelegte Datei php.ini

Wenn man stattdessen die php.ini von dem alten PHP in das Verzeichnis C:\xampp\php\ kopiert, funktioniert die PHP-Aktualisierung übrigens nicht.

Die Angabe des Verzeichnisses ist natürlich nicht absolut. Weil z. B. XAMPP auch auf der Festplatte „D:“ installiert sein könnte.

Änderungen in der neu erstellten php.ini

Damit Sie sich auf Ihrem Localhost mit dem aktualisierten PHP einloggen können, müssen 2 Änderungen in der neu erstellten php.ini durchgeführt werden. Diese Änderungen führe ich mit dem kostenlosen Programm Notepad++ durch. Weil dieser Editor die Zeilen zählt. Ändere ich etwas, notiere ich mir die Zeile, in der ich etwas geändert habe.

Änderung 1 in der php.ini (bei mir in der Zeile 771)

Alt:

; On windows:

;extension_dir = „ext“

Neu:

; On windows:

extension_dir=“C:\xampp\php\ext“

Ich habe also den Strichpunkt vor extension_dir entfernt und das Verzeichnis eintragen, in dem sich das aktualisierte PHP für WordPress befindet. Hier kommt es auf jedes Zeichen an!

Änderung bei extension_dir= in der php.ini
Änderung bei extension_dir= in der php.ini

Wie Sie sehen, habe mir angewöhnt, alte Einträge zu belassen. Falls die Änderung nicht wirkt, kann ich schnell auf den alten Zustand zugreifen und die Änderung löschen.

Führen sie diese Änderung nicht durch, kann die Login Maske von WordPress nicht geladen werden.

Änderung 2 in der php.ini (bei mir in der Zeile 937)

 

Alt:

;extension=mysqli

Neu:

extension=mysqli

Wie Sie sehen, habe ich lediglich den Strichpunkt vor extension=mysqli entfernt und damit die Extension aktiviert.

Führen sie diese Änderung nicht durch, kann die Login Maske von WordPress nicht geladen werden.

Die beiden Änderungen wirken für alle WordPress Installationen, die Sie auf dem Localhost haben. Weil die WordPress Installationen sich nicht unter dem php-Verzeichnis, sondern unter dem Verzeichnis htdocs befinden.

Die beiden Änderungen in der ph.ini führen natürlich nur dann zum Erfolg, wenn Apache nicht unerwartet beendet bzw. die oben erwähnten Änderungen in der Datei httpd-xampp.conf vorher durchgeführt worden sind (siehe oben).

Haben Sie z. B. 2 WordPress Installationen auf dem Localhost, müssen Sie also die ph.ini nur einmal pflegen.

Das XAMPP Control Panel lässt sich jetzt fehlerfrei aufrufen.

Fehlerfreier Aufruf vom XAMPP Control Panel
Fehlerfreier Aufruf vom XAMPP Control Panel

Den Autostart für Apache und MySQL können Sie herbeiführen, in dem Sie oben rechts auf den Button „Konfig“ klicken und die folgenden beiden Häkchen setzen und anschließend auf den Button speichern klicken.

XAMPP Control Panel Autostart für Apache und MYSQL
XAMPP Control Panel Autostart für Apache und MYSQL

Dennoch ist die PHP Aktualisierung von WordPress noch nicht beendet. Denn wenn ich mich bei WordPress einloggen möchte, erscheint die folgende Fehlermeldung:

Fatal error: Uncaught Error: Call to undefined function mysql_connect() in /usr/www/users/itdoor\wp-includes\class-wpdb.php:1810 Stack trace: #0 /usr/www/users/itdoor\wp-includes\class-wpdb.php(734): wpdb->db_connect() #1 /usr/www/users/itdoor\wp-includes\load.php(562): wpdb->__construct(‚root‘, “, ‚wordpress‘, ‚localhost‘) #2 /usr/www/users/itdoor\wp-settings.php(124): require_wp_db() #3 /usr/www/users/itdoor\wp-config.php(120): require_once(‚C:\\xampp\\htdocs…‘) #4 /usr/www/users/itdoor\wp-load.php(50): require_once(‚C:\\xampp\\htdocs…‘) #5 /usr/www/users/itdoor\wp-login.php(12): require(‚C:\\xampp\\htdocs…‘) #6 {main} thrown in /usr/www/users/itdoor\wp-includes\class-wpdb.php on line

Die Login Maske von WordPress fehlerfrei aufrufen

Damit sich die Login Maske von WordPress fehlerfrei aufrufen lässt, sind Änderungen in der Datei httpd-xampp.conf durchzuführen.

Die Datei httpd-xampp.conf finden Sie in dem Verzeichnis C:\xampp\apache\conf\extra.

Das sind die Dateien in diesem Verzeichnis.

Verzeichnis C:\xampp\apache\conf\extra mit Datei httpd-xampp.conf
Verzeichnis C:\xampp\apache\conf\extra mit Datei httpd-xampp.conf

Auch diese Änderungen führe ich mit dem kostenlosen Programm Notepad++ durch, weil dieser Editor die Zeilen zählt. Ändere ich etwas, notiere ich mir die Zeile, in der ich etwas geändert habe.

Vor den 4 bzw. 7 Änderungen kopiere ich die Datei httpd-xampp.conf und nenne die Kopie dieser Datei althttpd-xampp.conf. Damit ist der Datei althttpd-xampp.conf. der Originalzustand der Datei httpd-xampp.conf konserviert. Sicher ist sicher!

Änderung 1 in der Datei httpd-xampp.conf (bei mir ab Zeile 20)

Alt:

LoadFile „C:/xampp/php/php7ts.dll“

LoadFile „C:/xampp/php/libpq.dll“

LoadModule php7_module „C:/xampp/php/php7apache2_4.dll“

Neu:

LoadFile „C:/xampp/php/php8ts.dll“

LoadFile „C:/xampp/php/libpq.dll“

LoadFile „C:/xampp/php/libsqlite3.dll“

LoadModule php_module „C:/xampp/php/php8apache2_4.dll“

Ich tausche also lediglich zweimal php7 gegen php8 aus. Das ist notwendig, weil in dem neuen PHP die beiden Dateien in dem Verzeichnis C:/xampp/php/ bei dem neuen PHP jetzt so heißen.

Siehe den nächsten Screenshot.

Die Dateien php8ts.dll und php8apache2_4.dll in dem neuen PHP
Die Dateien php8ts.dll und php8apache2_4.dll in dem neuen PHP

Wann Apache unerwartet beendet wird

Wenn Sie mit der folgenden Zeile arbeiten:

LoadModule php8_module „C:/xampp/php/php8apache2_4.dll“

  • Obwohl hier ein Wechsel von PHP7 zu PHP8 stattfindet, darf bei den Änderungen 2 bis 4 nicht php7 durch php8 ersetzt werden. Das mag vielleicht unlogisch klingen, es ist aber trotzdem nicht der richtige Lösungsansatz. Wenn Sie dies machen, können Sie sich in Ihr WordPress auf dem Localhost nicht einloggen.

So sieht das XAMPP Control Panel aus, wenn Apache unerwartet beendet wird.

XAMPP Control Panel Apache wird unerwartet beendet
XAMPP Control Panel Apache wird unerwartet beendet

Wie Sie sehen, hat Apache dann keinen Port und keine PID(s).

Wenn Apache nicht funktioniert, dann gelangt man nicht auf die Login Maske von WordPress.

Wird die Zeile „LoadFile „C:/xampp/php/php7ts.dll“ beibehalten, wird Apache unerwartet beendet (siehe oben).

Apache wird auch dann unerwartet beendet, wenn die Zeile „LoadModule php7_module „C:/xampp/php/php7apache2_4.dll“ beibehalten wird.

Änderung 2 in der Datei httpd-xampp.conf (bei mir Zeile 44)

Alt:

<IfModule php7_module>

PHPINIDir „C:/xampp/php“

</IfModule>

Neu:

<IfModule php_module>

PHPINIDir „C:/xampp/php“

</IfModule>

Ich habe also lediglich die „7“ bei „<IfModule php7_module>“ entfernt.

  • Nicht php7 durch php8 an dieser Stelle ersetzen!

Wie bereits erwähnt, befindet sich die Datei Datei httpd-xampp.conf in dem Verzeichnis C:\xampp\apache\conf\. Dass ich das Verzeichnis C:\xampp\php\ wegen dem neuen PHP ausgetauscht habe, weiß das Verzeichnis C:\xampp\apache\conf\extra nicht. Daher ist in der Datei httpd-xampp.conf immer noch „php7“ verankert.

Änderung 3 in der Datei httpd-xampp.conf (bei mir Zeile 72)

Alt:

<Directory „C:/xampp/htdocs/xampp“>

<IfModule php7_module>

<Files „status.php“>

php_admin_flag safe_mode off

</Files>

</IfModule>

AllowOverride AuthConfig

</Directory>

Neu:

Directory „C:/xampp/htdocs/xampp“>

<IfModule php_module>

<Files „status.php“>

php_admin_flag safe_mode off

</Files>

</IfModule>

AllowOverride AuthConfig

</Directory>

Ich habe also lediglich die „7“ bei „<IfModule php7_module>“ entfernt.

  • Nicht php7 durch php8 an dieser Stelle ersetzen!

Wie bereits erwähnt, befindet sich die Datei Datei httpd-xampp.conf in dem Verzeichnis C:\xampp\apache\conf\. Dass ich das Verzeichnis C:\xampp\php\ wegen dem neuen PHP ausgetauscht habe, weiß das Verzeichnis C:\xampp\apache\conf\extra nicht. Daher ist in der Datei httpd-xampp.conf immer noch „php7“ verankert.

Änderung 4 in der Datei httpd-xampp.conf (bei mir Zeile 103)

Alt:

<Directory „C:/xampp/webalizer“>

<IfModule php7_module>

<Files „webalizer.php“>

php_admin_flag safe_mode off

</Files>

</IfModule>

AllowOverride AuthConfig

Require local

ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var

</Directory>

Neu:

<Directory „C:/xampp/webalizer“>

<IfModule php_module>

<Files „webalizer.php“>

php_admin_flag safe_mode off

</Files>

</IfModule>

AllowOverride AuthConfig

Require local

ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var

</Directory>

Ich habe also lediglich die „7“ bei „<IfModule php7_module>“ entfernt.

  • Nicht php7 durch php8 an dieser Stelle ersetzen!

Wie bereits erwähnt, befindet sich die Datei Datei httpd-xampp.conf in dem Verzeichnis C:\xampp\apache\conf\. Dass ich das Verzeichnis C:\xampp\php\ wegen dem neuen PHP ausgetauscht habe, weiß das Verzeichnis C:\xampp\apache\conf\extra nicht. Daher ist in der Datei httpd-xampp.conf immer noch „php7“ verankert.

Kontrolle der aktuellen PHP-Version in WordPress auf dem Localhost

Anschließend logge ich mich in WordPress auf meinem Localhost ein. Danach sehe ich, dass die Empfehlung PHP zu aktualisieren, verschwunden ist.

Wenn Sie die folgende Klickreihenfolge benutzen, können Sie sehen, welche Version von PHP Sie benutzen.

Werkzeuge-Websitezustand-Bericht-Server

So kann das dann aussehen.

PHP-Version von Ihrem WordPress finden
PHP-Version von Ihrem WordPress finden

Wie Sie sehen, bestätigt mir WordPress, dass mein Localhost nun eine neuere PHP-Version hat.

Fehlermeldung: Einige Fehler wurden auf dem Server entdeckt

Nach der PHP Aktualisierung, kann es sein, dass phpmyAdmin die o. g. Fehlermeldung generiert.

So sieht diese Fehlermeldung dann aus:

phpMyAdmin: Einige Fehler wurden auf dem Server entdeckt
phpMyAdmin: Einige Fehler wurden auf dem Server entdeckt

Im Testfall gab es 181 Seiten Fehlermeldungen (gemessen in Word). 23-mal kam die folgende Fehlermeldung:

http_build_query(): Passing null to parameter #2 ($numeric_prefix) of type string is deprecated

Es bestand aber kein Grund zur Panik für mich, da ich mich weiterhin auf dem Localhost in WordPress anmelden konnte.

Alle Fehlermeldungen verschwanden, als ich phpMyAdmin von Version 4.9.1 auf Version: 5.2.0 aktualisierte.

Siehe den Fachartikel: phpMyAdmin aktualisieren – Schritt für Schritt

Fehlermeldung: Die PHP-Erweiterung mbstring wurde nicht gefunden

Nach der PHP Aktualisierung kann es sein, dass Sie unten in phpmyAdmin diese Fehlermeldung erhalten:

Die PHP-Erweiterung mbstring wurde nicht gefunden, trotzdem scheinen Sie einen Mehrbyte-Zeichensatz zu verwenden. Ohne besagte Erweiterung ist phpMyAdmin nicht in der Lage Zeichenketten zu trennen, was zu unerwarteten Ergebnissen führen kann.

Eine Änderung in der Datei php.ini

Die Datei php.ini finden Sie in diesem Verzeichnis:

C:\xampp\php

Damit die Änderungen in der Datei php.ini wirken, musste ich den PC hoch- und runterfahren.  Ein Neustart von XAMPP Control Panel reichte im Testfall nicht.

Alt (bei mir Zeile 934)

;extension=mbstring

Neu

extension=mbstring

Ich habe also nur den Strichpunkt vor dieser Zeile entfernt.

In der Datei php.ini blieb übrigens die folgende Zeile (bei mir Zeile 722) im Testfall unverändert.

;internal_encoding =

In der Datei php.ini blieb auch die folgende Zeile (bei mir Zeile 1656) im Testfall unverändert.

;mbstring.internal_encoding =

Das war es dann zum Thema PHP-Aktualisierung für WordPress – Schritt für Schritt.

Andere Fachartikel zum Thema Localhost

MySQL wurde unerwartet beendet – XAMPP Control Panel

phpMyAdmin aktualisieren – Schritt für Schritt

phpinfo im Browser aufrufen – Localhost/XAMPP  – 4 Schritte

WordPress von Localhost auf Webserver

WordPress Localhost Password Reset – eine neue Methode

PHP-Aktualisierung für WordPress – Schritt für Schritt

WordPress und XAMPP auf eine neue Festplatte kopieren; FileZilla

WordPress Localhost empfangbare E-Mails versenden

Andere Themenblöcke bei ItDoor

Software für Aktien und andere Wertpapiere

Die Liste der Fachartikel zu Outlook von ItDoor

zu den Fachartikeln zum Thema Word von ItDoor für eilige Leser

Die Liste der Fachartikel zu WordPress von ItDoor

Zum WordPress Plugin Verzeichnis von ItDoor

Liste Fachartikel zum Thema Joomla von ItDoor

Fachartikel zum Thema Jutoh von ItDoor

IT Wörterbücher von ItDoor

zur Startseite von ItDoor

 

 

 

 

Schreibe einen Kommentar

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

8 × = 48

error: Content is protected !!