Am 28 November 2022 endet der Security Support für PHP 7.4. Das bedeutet das Upgrade zu PHP 8 oder 8.1 sollte zeitnahe durchgeführt werden. Damit du in aller Ruhe Deine Projekte testen und eventuelle Probleme mit dem PHP Upgrade von 7.4 auf 8.1 beheben kannst. Bietet sich XAMPP an.
Vermutlich hast du bereits eine XAMPP Version installiert und vermutlich läuft diese auf einer PHP 7.x Version. Da man über das Control Panel nicht so einfach die PHP Version ändern kann, zeige ich dir nun wie du zwei PHP Versionen (7.4 und 8.1) verwenden kannst ohne das du die neuste XAMPP Version mit PHP 8.1 installieren musst.
PHP 8.1 herunterladen
Lade dir zunächst die gewünschte PHP Version herunter. In dieser Anleitung ist es PHP 8.1.9.
https://windows.php.net/download#php-8.1
Nimm die Non Thread Safe Version.
Entpacke das .zip und benenne den entpackten Ordner zu php819 um.
Kopiere nun die entpackte und umbenannte PHP Version in deine lokale XAMPP Installation vermutlich unter: C:\xampp\php819
Die bisherige PHP Version findest du einfach unter C:\xampp\php.
PHP.INI der neuen Version erstellen / konfigurieren
Erstelle sofern noch nicht vorhanden eine Kopie der php.ini-development in deinem php819 Verzeichnis und nenne sie zu php.ini um.
Suche als erstes nach extension_dir in der neu angelegten php.ini.
Solltest du keinen Eintrag finden fügst du ihn selbst hinzu:
extension_dir="C:\xampp\php819\ext"
Am besten setzt du es an folgende Stelle (Unterhalb des user_dir):
; The directory under which PHP opens the script using /~username used only
; if nonempty.
; http://php.net/user-dir
user_dir =
; Directory in which the loadable extensions (modules) reside.
; http://php.net/extension-dir
;extension_dir = "./"
; On windows:
extension_dir="C:\xampp\php819\ext"
Dadurch hast du den Pfad deiner PHP Erweiterungen angegeben.
Als nächstes suche nach [Pdo]. Dein Code Editor springt jetzt an die richtige Stelle. Füge direkt in die nächste Zeile pdo_mysql.default_socket=”MySQL” ein:
[Pdo]
pdo_mysql.default_socket="MySQL"
; Whether to pool ODBC connections. Can be one of "strict", "relaxed" or "off"
; http://php.net/pdo-odbc.connection-pooling
;pdo_odbc.connection_pooling=strict
[Pdo_mysql]
; Default socket name for local MySQL connects. If empty, uses the built-in
; MySQL defaults.
pdo_mysql.default_socket=
Sollte deine XAMPP MySQL Installation einen anderen Port als 3306 verwenden suche bitte nach mysqli.default_port und setze deinen Port entsprechend um.
mysqli.default_port = 3306
Suche als nächstes nach extension= dein Code Editor springt an die Stelle an der du noch die PHP Erweiterungen aktivieren kannst. In der Default .ini sind alle auskommentiert.
Aktiviere folgende Erweiterungen indem du das “;” Kommentarzeichen entfernst:
- extension=bz2
- extension=curl
- extension=fileinfo
- extension=gd
- extension=gettext
- extension=mbstring
- extension=exif
- extension=mysqli
- extension=pdo_mysql
- extension=pdo_sqlite
Optional: Suche bitte noch nach https und ersetze alles durch http da wir lokal kein SSL verwenden.
Deine neue PHP 8.1 Version ist jetzt erfolgreich installiert und konfiguriert. Im nächsten Schritt erstellen wir einen neuen Virtuellen Host der automatisch diese PHP Version verwendet.
httpd-xampp.conf: Virtuellen Host erstellen der neue PHP Version verwendet
Die Config Datei findest du unter: C:\xampp\apache\conf\extra
.
Ganz oben findest du folgende Einstellung: SetEnv PHPRC “\\xampp\\php”.
Kommentiere sie mit dem “#” Zeichen aus.
Füge in der selben Datei ganz unten folgende Zeilen ein:
ScriptAlias /php819 "C:/xampp/php819"
Action application/x-httpd-php819-cgi /php819/php-cgi.exe
<Directory "C:/xampp/php819">
AllowOverride None
Options None
Require all denied
<Files "php-cgi.exe">
Require all granted
</Files>
</Directory>
Listen 819
<VirtualHost *:819>
<FilesMatch "\.php$">
SetHandler application/x-httpd-php819-cgi
</FilesMatch>
</VirtualHost>
Wie du siehst erstellen wir damit einen neuen virtuellen Host der auf dem Port 819 erreichbar ist und die neue PHP 8.1 Version verwendet. Du kannst natürlich auch einen anderen Port wählen aber meiner Meinung nach ist es praktisch den Port nach der Version zu wählen.
Versionen testen und Neustart XAMPP
Starte nun dein XAMPP neu (Apache und MySQL).
Erstelle einen Ordner phptest unter htdocs.
Erstelle eine Datei: phpinfo.php mit folgendem Inhalt in diesem Verzeichnis:
<?php
phpinfo();
Öffne deinen Browser und gebe folgende URLs ein:
localhost/phptest/phpinfo.php
localhost:819/phptest/phpinfo.php
Wie du siehst verwendet die “Webseite” die über Port 819 aufgerufen wird nun die neue PHP Version.
Neue Version mit Port 819 unter WordPress verwenden
Du kannst nun dein bisheriges WordPress Projekt das unter PHP 7.4 einwandfrei funktioniert mit PHP 8.1 testen indem du in den Allgemeinen Website Einstellungen den Port mit angibst:
Stelle jetzt WP_DEBUG an und viel Spaß beim Bugfixen 🙂
Hey, bist du Werbeagentur Inhaber oder Webdesigner der ab und zu Speziallösungen für seine Kunden braucht? 👉 Dann schreibe mir. Ich helfe dir egal um was es geht. Plugin-Anpassungen, Schnittstellen Programmierung oder einfach nur WP Bugfixing. Ich bin dein Support im Hintergrund. Schnelle Reaktion, saubere Lösungen und mit den Preisen am Boden garantiert.