XAMPP: Mehrere PHP Versionen verwenden

Julian Lang
Julian Lang

09. Aug, 2022 | 3 Min. Lesezeit

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.

Table of Content SVG Icon Inhaltsverzeichnis

    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 🙂

    geschrieben von

    Autor Avatar
    Julian Lang

    ist PHP / WordPress Entwickler. Arbeitet außerdem als Allrounder bei docrelations.de und entwickelt zwei coole Projekte: jadento.de | lifeisabinge.com

    Schreibe einen Kommentar

    © 2015 - 2022 | Julian Lang Webentwickler | WordPress Entwickler | Webdesigner in Bayreuth und Umgebung