Zum Inhalt

Hinweis

Dieses Helpcenter befindet sich noch im Aufbau. Einige Themen fehlen noch oder werden aktuell überarbeitet.

Wenn dir etwas fehlt oder eine Formulierung unklar ist, sag uns bitte kurz Bescheid. Am hilfreichsten ist der Link zur Seite und ein Beispiel, was du erreichen möchtest.

Weiterführend: Wo finde ich was? · Ich habe keinen Zugang · Zugänge absichern

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

  1. cPanel öffnenwie das geht
  2. 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 PHP eintippst.
  3. Oben auf die angezeigte Version klicken. Es klappt eine Liste aller verfügbaren Versionen auf. Die derzeit eingestellte ist mit (aktuell) gekennzeichnet.
  4. Die gewünschte Version anklicken und auf Übernehmen klicken.

cPanel: die aufgeklappte Liste der PHP-Versionen

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_filesize und max_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-phpXX in 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 oder inherit (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:

  1. Software → PHP-Version wählen öffnen
  2. Oben die Zielversion auswählen, in diesem Beispiel 8.1
  3. Unter Erweiterungen alle Module anhaken, die deine Anwendung braucht. Bei WordPress und den meisten Shops sind das unter anderem mysqli, gd, curl, mbstring, zip und intl.
  4. Speichern
  5. 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.

Das könnte auch weiterhelfen

Serverprofis.de erstellt mit Material for MkDocs