PHP-Version ändern¶
PHP ist die Programmiersprache, in der die meisten Websites laufen — WordPress zum Beispiel. Manche Programme brauchen eine bestimmte PHP-Version, neuere Versionen sind meist schneller und sicherer.
So geht’s¶
- cPanel öffnen — wie das geht
- Im Bereich Software auf PHP-Version wählen klicken, auf Englisch
Select PHP Version. Über die Suche oben findest du den Punkt am schnellsten, wenn du
PHPeintippst. - Oben auf die angezeigte Version klicken. Es klappt eine Liste aller verfügbaren Versionen auf. Die derzeit eingestellte ist mit (aktuell) gekennzeichnet.
- Die gewünschte Version anklicken und auf Übernehmen klicken.
Die Umstellung wirkt sofort. Schau danach kurz auf deiner Website nach, ob alles läuft.
Die Version gilt für den ganzen Account
Die Einstellung wirkt für alle Domains in deinem cPanel-Account, nicht nur für eine einzelne. Wenn du mehrere Websites in einem Account betreibst, stellst du sie also gemeinsam um.
Es gibt dort zwar eine Registerkarte Domänen-Einstellungen, die eine eigene Version je Domain verspricht. Sie bleibt bei uns wirkungslos, weil die dafür nötige Funktion auf unseren Servern nicht aktiv ist. Alle Domains zeigen deshalb Konto-Standard. Wie es trotzdem geht, steht weiter unten.
Welche Version soll ich nehmen?¶
- Im Zweifel die neueste Version, die dein Programm unterstützt. Ältere PHP-Versionen bekommen keine Sicherheitsupdates mehr.
- Schrittweise vorgehen: erst eine Version höher, Website prüfen, dann weiter.
- Geht etwas kaputt, stellst du im selben Fenster einfach wieder zurück — es geht dabei nichts verloren.
Ich finde den Punkt „PHP-Version wählen“ nicht¶
In den Starter-Tarifen ist die Auswahl nicht freigeschaltet. Schreib uns in dem Fall kurz ein Ticket mit der gewünschten Version und der betroffenen Domain — wir stellen sie für dich um.
Einen Punkt namens MultiPHP Manager wirst du bei uns nicht finden: Wir arbeiten mit dem PHP-Selector, damit dir alle gepflegten PHP-Erweiterungen zur Verfügung stehen.
Für Experten: Erweiterungen und Grenzen
- Im selben Fenster kannst du unter Erweiterungen einzelne PHP-Module an- und
abschalten (
imagick,intl,apcu,soap…). Weniger Module = weniger Angriffsfläche. - Unter Optionen stehen die PHP-Einstellungen wie
memory_limit,upload_max_filesizeundmax_execution_time— siehe Upload-Limits erhöhen. - Wir setzen ausschließlich alt-php (CloudLinux PHP Selector), nicht ea-php. Ein
AddHandler application/x-httpd-ea-phpXXin einer.htaccessüberstimmt den Selector und ist praktisch immer ein Altlast-Eintrag, der raus kann. - Nach einem Versionswechsel bei WordPress liegen Fehler fast immer an einem Plugin oder Theme, nicht an PHP selbst. Testweise Plugins deaktivieren grenzt das schnell ein.
Die Umstellung wirkt nicht¶
Du hast umgestellt, aber deine Website läuft weiter mit der alten Version? Das kommt vor, und es liegt dann nicht an dir.
Das erkennst du daran, dass ein Programm weiterhin über eine zu alte PHP-Version klagt, obwohl im cPanel die neue eingestellt ist. Bei WordPress etwa bricht die Installation mit dem Hinweis ab, die PHP-Version genüge nicht.
Die Ursache liegt meist bei einer zweiten Einstellung im Hintergrund, die für die Domain eine feste Version vorgibt und die Auswahl im PHP-Selector überstimmt. Das betrifft vor allem Accounts, die schon länger bestehen oder von einem anderen Anbieter übernommen wurden.
Die Lösung: Schreib uns kurz ein Ticket mit der Domain und der gewünschten Version. Wir lösen die Festlegung auf, danach greift deine Auswahl wieder. Das dauert nur einen Moment und ändert an deinen Daten nichts.
Für Experten: was da genau passiert
Es gibt zwei voneinander unabhängige Stellschrauben.
- Der CloudLinux PHP-Selector ist das, was du im cPanel siehst. Er arbeitet mit den
alt-php-Paketen. - Daneben führt cPanel je Vhost eine eigene Zuordnung. Steht dort eine
ea-php-Version oderinherit(also die Systemvorgabe), gewinnt diese Zuordnung, und die Auswahl im Selector bleibt wirkungslos.
Auf der Serverseite ist das eine Zeile:
whmapi1 php_get_vhost_versions | grep -A2 deine-domain.de
whmapi1 php_set_vhost_versions version=ea-php82 vhost-0=deine-domain.de
Prüfen lässt sich das Ergebnis am schnellsten mit einer Datei, die <?php phpinfo();
enthält. Lösch sie danach wieder, sie verrät mehr über dein System, als öffentlich sein
sollte.
Ein AddHandler- oder SetHandler-Eintrag in einer .htaccess überstimmt übrigens
beides. Wenn gar nichts greift, lohnt der Blick dorthin.
Ich brauche unterschiedliche Versionen für verschiedene Websites¶
Die Einstellung gilt für den ganzen Account. Wenn in einem Tarif mehrere Websites liegen und eine davon eine andere PHP-Version braucht, gibt es zwei Wege.
Der saubere Weg¶
Leg die betroffene Website in einen eigenen Tarif. Dann hat sie ihre eigene Einstellung, und du kannst beide unabhängig voneinander aktualisieren. Das ist der einzige Weg, für den wir geradestehen können.
Der Behelfsweg¶
Es gibt eine Möglichkeit, für einen einzelnen Ordner eine abweichende Version festzulegen. Sie ist vom Hersteller des Controlpanels weder vorgesehen noch unterstützt, funktioniert aber in vielen Fällen zuverlässig.
Dafür trägst du ganz oben in die .htaccess des betreffenden Ordners diesen Block ein:
<FilesMatch "\.(php4|php5|php3|php2|php|phtml)$">
SetHandler application/x-httpd-alt-php81___lsphp
</FilesMatch>
Die Zahl 81 steht für die gewünschte Version, in diesem Beispiel PHP 8.1. Für PHP 8.2
schreibst du php82, für 7.4 entsprechend php74.
Erst die Erweiterungen für die Zielversion einschalten
Die PHP-Erweiterungen werden je Version getrennt gespeichert. Biegst du einen Ordner auf PHP 8.1 um, gelten dort die Erweiterungen, die für 8.1 hinterlegt sind. Das sind in der Regel keine, weil du diese Version nie eingestellt hattest. Die Folge ist eine Website, die mit einer Fehlermeldung über eine fehlende Funktion abbricht.
Deshalb vorher einmal umschalten:
- Software → PHP-Version wählen öffnen
- Oben die Zielversion auswählen, in diesem Beispiel 8.1
- Unter Erweiterungen alle Module anhaken, die deine Anwendung braucht. Bei WordPress
und den meisten Shops sind das unter anderem
mysqli,gd,curl,mbstring,zipundintl. - Speichern
- Oben wieder auf die Version zurückstellen, die der Rest deines Tarifs nutzt
Die Auswahl für 8.1 bleibt dabei erhalten. Erst danach greift der Eintrag in der
.htaccess mit den passenden Erweiterungen.
Ohne Gewähr, und das ist ernst gemeint
Ob es greift, hängt von Faktoren ab, die wir nicht beeinflussen können. Läuft es, läuft es meist dauerhaft stabil. Läuft es nicht, können auch wir wenig ausrichten, weil die Funktion offiziell nicht vorgesehen ist.
Deshalb vorher unbedingt eine Kopie der .htaccess anlegen. Ein Fehler in dieser Datei legt
die Website mit Fehler 500 lahm. Siehe .htaccess kurz erklärt.
Bei Problemen mit dieser Konstruktion bitten wir um Verständnis, dass wir nur eingeschränkt unterstützen können. Für Websites, auf die es ankommt, ist der eigene Tarif die verlässlichere Lösung.
Ältere PHP-Versionen¶
Auch ältere Versionen kannst du weiter auswählen. Sie erhalten bei uns über einen erweiterten Support weiterhin Sicherheitsaktualisierungen, obwohl der offizielle Support des Herstellers längst ausgelaufen ist. Hintergründe dazu stehen in unserem Beitrag PHP-Support für veraltete PHP-Versionen.
Trotzdem gilt: Eine alte Version ist immer nur die zweitbeste Lösung. Wenn deine Anwendung eine neuere Version verträgt, nimm die neuere.
