Diese Anleitung erklärt wie über eine Anpassung der .htaccess-Datei mehrere verschiedene PHP-Versionen in einem Hosting verwendet werden können.
In jedem Webhosting wird mit dem PHP-Selector (cPanel -> "PHP-Version wählen" / "Select PHP Version") eine PHP-Hauptversion definiert. Im PHP-Selector wird diese nach dem Aufruf als Current PHP verison angezeigt:
Die Hauptversion können wir im Dropdown-Menü auswählen, und mit einem Klick auf Apply für das Hosting setzen.
Der Apply-Button hat nur die Funktion die aktuell gesetzte PHP-Hauptversion zu verändern. Er muss nicht geklickt werden, nachdem Extensions oder Optionen verändert wurden. Er erscheint dann auch nicht. Er erscheit nur bei der Wahl einer anderen Version als der im Moment gesetzten Hauptversion.
Die Extensions und Optionen der PHP-Version können verändern werden. Falls eine PHP-Option nicht in der Liste erscheint, kann diese meist über den Support aktiviert werden. Dazu am besten ein Ticket über das Kundencenter lösen.
In jedem Verzeichnis können wir die PHP-Version verändern, ohne dabei die PHP-Hauptversion vom Webhosting zu ändern. Damit ist es möglich in einem Webhosting beliebig viele verschiedene PHP-Versionen zu verwenden.
Folgender Abschnitt muss dazu in der .htaccess
-Datei hinzugefügt werden:
<FilesMatch "\.(php|phtml)$">
SetHandler application/x-httpd-alt-php82___lsphp
</FilesMatch>
Es ist empfohlen den Abschnitt ganz am Anfang in der Datei zu platzieren. Die PHP-Version gilt dann für das Verzeichnis und alle Unterverzeichnisse, kann in Unterverzeichnissen jedoch gleichermassen wieder überschrieben werden.
Mit diesem Beispiel setzen wir die PHP-Version auf 8.2. Die Version kann beliebig geändert werden, durch Anpassung von php82
in die gewünschte Versionsnummer. Alle PHP-Versionen, welche auch beim PHP-Selector zur Verfügung stehen, können so gesetzt werden.
Falls sich das Hosting auf dem Server cpanel07, cpanel08 oder cpanel09 befindet, muss ein Workaround angewendet werden. Siehe dazu den sepearten Abschnitt "Workaround für den Apache-Webserver" weiter unten.
Wie gewohnt setzen wir die Extensions und Optionen im PHP-Selector, bis auf das wir den Klick auf Apply weglassen.
Ein Beispiel: Wir haben die PHP-Version 8.2 gemäss dem .htaccess-Eintrag definiert und wollen nun dafür die "imagick"-Extension im PHP-Selector aktivieren. Nach dem Aufruf des PHP-Selector wählen wir 8.2 aus dem Dropdown-Menü aus und setzen den Haken bei "imagick". Das sieht dann so aus:
! Den Apply-Button klicken wir nicht, da die PHP-Hauptversion nicht geändert werden soll.
Das Softaculous sieht die Einstellung zur PHP-Version in der .htaccess-Datei nicht. Das kann dazu führen das Softaculous die Installation einer Software verweigert. Der Workaround besteht darin die PHP-Hauptversion kurzzeitig zu ändern. Nach der Software-Installation über Softaculous, kann die PHP-Hauptversion wieder zurückgestellt werden.
Einige wenige Shared-Hostingserver verwenden historisch bedingt den Apache-Webserver. Der .htaccess-Eintrag muss dann wie folgt gesetzt werden:
AddHandler application/x-httpd-alt-php82 .php .phtml
Falls auch dieser Workaround nicht funktionieren sollte, kann der Hosting-Account vom Support auf einen anderen Server transferiert werden.
Früher konnte beim Support auf Anfrage der MultiPHP-Manager von cPanel aufgeschaltet werden. Im Zusammenhang mit dem PHP-Selector von CloudLinux funktioniert dieser jedoch in verschiedenen Szenarien nicht stabil. Zudem ist eine (Fehler)analyse jeweils sehr zeitintensiv, da sich PHP-Selector und MultiPHP-Manager unterschiedlich übersteuern können. Anzeigen im cPanel sind dann jeweils nicht ausreichend um herauszufinden welche Konfiguration bei einer Domain aktiv sind. Zusätzlich gibt es Enschränkungen in den verfügbaren Extensions und Optionen. Novatrend bietet den MultiPHP-Manager deshalb nicht mehr an. Eine Umstellung des MultiPHP Manager in eine gleiche PHP-Selector Konfiguration erfolgt durch Novatrend automatisch bei Serverupgrades oder manuell auf Anfrage über ein Supportticket aus dem Kundencenter.