15%

15% auf alle Hosting-Dienste sparen

Teste deine Fähigkeiten und erhalte Rabatt auf jeden Hosting-Plan

Benutze den Code:

Skills
Anfangen
01.11.2024

Wie Sie die PHP-Version in Ihrer Hosting-Umgebung ändern (Vollständiger Leitfaden)

Die Verwaltung Ihrer PHP-Version ist eine der wichtigsten administrativen Aufgaben für jeden Website-Besitzer oder Entwickler. Ob Sie auf die neuesten Leistungsverbesserungen aktualisieren, auf ältere Anwendungskompatibilität herabstufen oder Sicherheitslücken beheben – das genaue Wissen, wie Sie PHP-Versionen in verschiedenen Hosting-Umgebungen wechseln, ist eine unverzichtbare Fähigkeit. Dieser umfassende Leitfaden führt Sie durch jede verfügbare Methode – von cPanels grafischer Benutzeroberfläche bis zu Befehlszeilenwerkzeugen auf VPS Hosting und dedizierten Servern.

Inhaltsverzeichnis

  1. Warum PHP-Versionsverwaltung wichtig ist
  2. PHP-Versionen und Kompatibilität verstehen
  3. Methode 1: PHP-Version über cPanel ändern (MultiPHP Manager)
  4. Methode 2: PHP-Version über .htaccess ändern (Apache)
  5. Methode 3: PHP-Version über Befehlszeile ändern (VPS/Dedicated Servers)
  6. Methode 4: PHP-Version über php.ini ändern
  7. Überprüfung Ihrer aktiven PHP-Version
  8. Häufige Fehler nach dem Wechsel der PHP-Version
  9. Best Practices für die PHP-Versionsverwaltung
  10. Fazit

1. Warum PHP-Versionsverwaltung wichtig ist {#why-it-matters}

PHP betreibt über 77% aller Websites mit einer bekannten serverseitigen Sprache, einschließlich großer Plattformen wie WordPress, Joomla, Drupal und Magento. Jede große PHP-Version führt erhebliche Änderungen ein:

  • Leistungsgewinne: PHP 8.x ist dramatisch schneller als PHP 5.x oder 7.x, dank des JIT-Compilers (Just-In-Time).
  • Sicherheits-Patches: Ältere PHP-Versionen erreichen schließlich das Ende der Lebensdauer (EOL) und erhalten keine Sicherheitsupdates mehr, was Ihre Website gefährdet.
  • Anwendungskompatibilität: Einige ältere Plugins, Themes oder benutzerdefinierte Anwendungen wurden für spezifische PHP-Versionen geschrieben und können bei neueren Versionen fehlschlagen.
  • Hosting-Compliance: Viele Hosting-Anbieter erzwingen Mindestanforderungen für die PHP-Version, um Sicherheitsstandards des Servers zu wahren.

Wenn Sie Ihre PHP-Version nicht proaktiv verwalten, kann dies zu fehlerhafter Funktionalität, Sicherheitsverletzungen oder vollständigen Website-Ausfallzeiten führen. Das Verständnis, wie man diese Einstellung steuert – unabhängig von Ihrem Hosting-Typ – ist für jeden ernsthaften Web-Administrator unverzichtbar.

2. PHP-Versionen und Kompatibilität verstehen {#understanding-versions}

Bevor Sie Änderungen vornehmen, ist es wichtig, den PHP-Veröffentlichungszyklus und die Versionsnummerierung zu verstehen.

PHP-Versionsnummerierung

PHP folgt einem MAJOR.MINOR.PATCH-Versionierungsschema:

KomponenteBeispielBedeutung
Major8Signifikante architektonische Änderungen, mögliche Breaking Changes
Minor8.2Neue Funktionen, rückwärtskompatible Verbesserungen
Patch8.2.10Nur Bugfixes und Sicherheits-Patches

PHP-Support-Lebenszyklus

Jede PHP-Minor-Version erhält:

  • Aktive Unterstützung für etwa 2 Jahre (Bugfixes + Sicherheits-Patches)
  • Nur Sicherheits-Unterstützung für ein weiteres Jahr
  • Ende der Lebensdauer (EOL), danach werden keine Patches mehr veröffentlicht

Derzeit unterstützte PHP-Versionen (Stand 2024–2025)

PHP-VersionStatusHinweise
PHP 8.3Aktive UnterstützungNeueste stabile Version
PHP 8.2Aktive UnterstützungEmpfohlen für die meisten Anwendungen
PHP 8.1Nur SicherheitImmer noch weit verbreitet
PHP 8.0EOLVermeiden – keine Sicherheits-Patches
PHP 7.4EOLNur Legacy-Unterstützung
PHP 7.3 und älterEOLStark abgeraten

> Faustregel: Führen Sie immer die höchste PHP-Version aus, die Ihre Anwendung offiziell unterstützt. Wenn Ihr CMS oder Framework PHP 8.2 unterstützt, gibt es keinen Grund, PHP 7.4 auszuführen.

3. Methode 1: PHP-Version über cPanel ändern (MultiPHP Manager) {#cpanel-method}

cPanel ist das am weitesten verbreitete Hosting-Kontrollpanel und bietet zwei integrierte Tools für die PHP-Versionsverwaltung: MultiPHP Manager (serverübergreifend oder pro Domain) und MultiPHP INI Editor (zur Feinabstimmung von PHP-Einstellungen). Wenn Sie ein VPS mit cPanel verwenden, sind beide Tools für Sie verfügbar.

Schritt 1: Melden Sie sich bei cPanel an

  1. Öffnen Sie Ihren Browser und navigieren Sie zu Ihrer cPanel-Anmelde-URL:
    https://yourdomain.com:2083 (sicher, empfohlen)
    https://yourdomain.com/cpanel
  • Oder die direkte IP: https://your-server-ip:2083
    1. Geben Sie Ihren cPanel-Benutzernamen und Passwort ein.
    2. Klicken Sie auf Anmelden.

    Schritt 2: Öffnen Sie MultiPHP Manager

    1. Scrollen Sie im cPanel-Dashboard zum Bereich Software.
    2. Klicken Sie auf MultiPHP Manager.

    > Alternative: Einige cPanel-Setups bezeichnen dies als PHP-Version auswählen, PHP-Konfiguration oder PHP-Selector (letzteres ist bei CloudLinux-basierten Shared-Hosting häufig). Die Benutzeroberfläche kann leicht unterschiedlich sein, aber der Prozess ist derselbe.

    Schritt 3: Wählen Sie Ihre Domain und PHP-Version

    In der MultiPHP Manager-Benutzeroberfläche:

    1. Sie sehen eine Liste aller Domains und Subdomains, die auf Ihrem Konto gehostet werden.
    2. Aktivieren Sie das Kontrollkästchen neben der Domain, die Sie ändern möchten.
    3. Wählen Sie aus dem Dropdown PHP-Version oben auf der Seite Ihre gewünschte PHP-Version (z. B. PHP 8.2).
    4. Klicken Sie auf Anwenden.

    > Wichtig: Wenn Sie ein Shared-Hosting-Konto haben, werden die verfügbaren PHP-Versionen von Ihrem Hosting-Anbieter bestimmt. Wenn Sie eine Version benötigen, die nicht aufgelistet ist, kontaktieren Sie das Support-Team Ihres Hosts oder erwägen Sie ein Upgrade auf einen VPS Hosting-Plan, bei dem Sie vollständige Kontrolle über installierte PHP-Versionen haben.

    Schritt 4: (Optional) Passen Sie PHP-Einstellungen über MultiPHP INI Editor an

    Nach dem Wechsel der Version müssen Sie möglicherweise PHP-Konfigurationswerte anpassen:

    1. Kehren Sie zum Bereich Software in cPanel zurück.
    2. Klicken Sie auf MultiPHP INI Editor.
    3. Wählen Sie Ihre Domain aus dem Dropdown.
    4. Ändern Sie Werte wie:
      memory_limit (z. B. 256M)
      upload_max_filesize (z. B. 64M)
      max_execution_time (z. B. 300)
      post_max_size (z. B. 64M)
      
      
      Klicken Sie auf Anwenden, um die Änderungen zu speichern.
      
      Schritt 5: Überprüfen Sie die Änderung
      Erstellen Sie eine Testdatei, um die aktive PHP-Version zu bestätigen (siehe Abschnitt 7 für vollständige Anweisungen).
      4. Methode 2: PHP-Version über .htaccess ändern (Apache) {#htaccess-method}
      Wenn Ihre Hosting-Umgebung Apache ausführt, aber keinen grafischen PHP-Selector bietet, können Sie die PHP-Version direkt über Ihre .htaccess-Datei steuern. Diese Methode ist besonders nützlich auf Shared Web Hosting-Plänen, bei denen der Serverzugriff eingeschränkt ist.
      Funktionsweise
      Apache verwendet Handler, um zu bestimmen, wie .php-Dateien verarbeitet werden. Durch die Angabe eines benutzerdefinierten Handlers in .htaccess weisen Sie Apache an, eine bestimmte PHP-Version für Ihre Website zu verwenden.
      Schritt 1: Greifen Sie auf Ihre .htaccess-Datei zu
      Sie können .htaccess über folgende Methoden bearbeiten:
      
      cPanel File Manager: Navigieren Sie zu public_html, suchen Sie .htaccess, klicken Sie mit der rechten Maustaste und wählen Sie Bearbeiten.
      FTP/SFTP-Client: Verbinden Sie sich mit Ihrem Server und navigieren Sie zu Ihrem Web-Root (normalerweise public_html oder www).
      SSH-Befehlszeile: nano /home/username/public_html/.htaccess

      > Hinweis: .htaccess ist eine versteckte Datei. Aktivieren Sie in Ihrem FTP-Client „Versteckte Dateien anzeigen”. Im cPanel File Manager aktivieren Sie „Versteckte Dateien (Dotfiles) anzeigen” in den Einstellungen oben rechts.

      Schritt 2: Fügen Sie die PHP-Handler-Direktive hinzu

      Fügen Sie eine der folgenden Zeilen zu Ihrer .htaccess-Datei hinzu, je nach Namenskonvention des PHP-Handlers Ihres Servers:

      Für PHP 8.2:

      AddHandler application/x-httpd-php82 .php

      Für PHP 8.1:

      AddHandler application/x-httpd-php81 .php

      Für PHP 7.4 (Legacy):

      AddHandler application/x-httpd-php74 .php

      Alternative Syntax (auf einigen Hosts verwendet):

      # Using suPHP or FastCGI
      Action php-cgi /cgi-bin/php82
      AddHandler php-cgi .php

      > Wichtig: Der genaue Handler-Name (x-httpd-php82, x-httpd-php81, usw.) hängt davon ab, wie Ihr Hosting-Anbieter PHP auf seinen Servern konfiguriert hat. Wenn das Obige nicht funktioniert, überprüfen Sie die Dokumentation Ihres Hosts oder kontaktieren Sie den Support für die korrekten Handler-Namen.

      Schritt 3: Speichern und testen

      Speichern Sie die .htaccess-Datei und testen Sie Ihre Website. Wenn Sie einen 500 Internal Server Error sehen, ist der Handler-Name wahrscheinlich falsch – entfernen Sie die Zeile und versuchen Sie eine alternative Syntax.

      5. Methode 3: PHP-Version über Befehlszeile ändern (VPS/Dedicated Servers) {#cli-method}

      Wenn Sie Ihre eigenen Dedicated Servers oder einen VPS mit Root-Zugriff verwalten, haben Sie vollständige Kontrolle über die PHP-Installation und den Versionswechsel. Dies ist die leistungsstärkste und flexibelste Methode.

      Voraussetzungen

      • Root- oder Sudo-Zugriff auf Ihren Server
      • SSH-Client (Terminal auf macOS/Linux, PuTTY oder Windows Terminal auf Windows)
      • Grundlegende Vertrautheit mit Linux-Befehlszeilenvorgängen

      Ubuntu / Debian – Verwendung von update-alternatives

      Ubuntu- und Debian-basierte Systeme verwenden das update-alternatives-System, um mehrere PHP-Versionen gleichzeitig zu verwalten.

      #### Schritt 1: Fügen Sie das Ondřej Surý PHP Repository hinzu

      Dieses PPA bietet mehrere PHP-Versionen für Ubuntu/Debian:

      sudo apt update
      sudo apt install -y software-properties-common
      sudo add-apt-repository ppa:ondrej/php
      sudo apt update

      #### Schritt 2: Installieren Sie die gewünschte PHP-Version

      # Install PHP 8.2 and common extensions
      sudo apt install -y php8.2 php8.2-cli php8.2-fpm php8.2-mysql php8.2-curl 
          php8.2-gd php8.2-mbstring php8.2-xml php8.2-zip php8.2-bcmath
      
      # Install PHP 8.1 if needed
      sudo apt install -y php8.1 php8.1-cli php8.1-fpm php8.1-mysql

      #### Schritt 3: Wechseln Sie die Standard-PHP-Version (CLI)

      # View all registered PHP alternatives
      sudo update-alternatives --list php
      
      # Switch to PHP 8.2
      sudo update-alternatives --set php /usr/bin/php8.2
      
      # Or use the interactive selector
      sudo update-alternatives --config php

      Der interaktive Selector zeigt etwa folgendes an:

      There are 3 choices for the alternative php (providing /usr/bin/php).
      
        Selection    Path             Priority   Status
      ------------------------------------------------------------
      * 0            /usr/bin/php8.2   82        auto mode
        1            /usr/bin/php7.4   74        manual mode
        2            /usr/bin/php8.1   81        manual mode
        3            /usr/bin/php8.2   82        manual mode
      
      Press <enter> to keep the current choice[*], or type selection number:

      Geben Sie die Nummer ein, die Ihrer gewünschten Version entspricht, und drücken Sie die Eingabetaste.

      #### Schritt 4: Wechseln Sie die PHP-Version für Apache (mod_php)

      # Disable current PHP module (e.g., PHP 8.1)
      sudo a2dismod php8.1
      
      # Enable new PHP module (e.g., PHP 8.2)
      sudo a2enmod php8.2
      
      # Restart Apache
      sudo systemctl restart apache2

      #### Schritt 5: Wechseln Sie die PHP-Version für Nginx (PHP-FPM)

      Für Nginx wird PHP über PHP-FPM verwaltet. Aktualisieren Sie Ihren Nginx-Serverblock, um auf den korrekten FPM-Socket zu verweisen:

      # In your Nginx server block configuration
      location ~ .php$ {
          fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
          fastcgi_index index.php;
          include fastcgi_params;
          fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
      }

      Starten Sie dann sowohl PHP-FPM als auch Nginx neu:

      sudo systemctl restart php8.2-fpm
      sudo systemctl restart nginx

      CentOS / RHEL / AlmaLinux / Rocky Linux – Verwendung von SCL oder Remi Repository

      #### Option A: Verwendung von Software Collections (SCL) – CentOS 7

      # Install the SCL repository
      sudo yum install -y centos-release-scl
      
      # Install PHP 7.4 via SCL
      sudo yum install -y rh-php74 rh-php74-php-fpm rh-php74-php-mysqlnd
      
      # Enable PHP 7.4 for the current session
      sudo scl enable rh-php74 bash
      
      # Verify
      php --version

      > Hinweis: SCL-Änderungen sind sitzungsspezifisch. Um sie dauerhaft für einen Benutzer zu machen, fügen Sie source /opt/rh/rh-php74/enable zu ~/.bashrc hinzu.

      #### Option B: Verwendung von Remi Repository – CentOS 7/8, AlmaLinux, Rocky Linux

      # Install EPEL and Remi repositories
      sudo dnf install -y epel-release
      sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm  # For RHEL 8/AlmaLinux 8
      
      # List available PHP streams
      sudo dnf module list php
      
      # Reset current PHP module
      sudo dnf module reset php
      
      # Enable PHP 8.2 stream
      sudo dnf module enable php:remi-8.2
      
      # Install PHP 8.2
      sudo dnf install -y php php-cli php-fpm php-mysqlnd php-gd php-mbstring php-xml php-zip
      
      # Verify
      php --version

      Wechsel von PHP für einzelne Websites (Pro-Website-PHP-Version)

      Auf Servern, die mehrere Websites ausführen, benötigen Sie oft unterschiedliche PHP-Versionen pro Website. Der sauberste Ansatz ist das Ausführen mehrerer PHP-FPM-Pools:

      # Start PHP-FPM for multiple versions
      sudo systemctl start php7.4-fpm
      sudo systemctl start php8.1-fpm
      sudo systemctl start php8.2-fpm

      Konfigurieren Sie dann jeden Nginx-Virtual-Host, um einen anderen FPM-Socket zu verwenden:

      # Site A — PHP 8.2
      server {
          server_name site-a.com;
          root /var/www/site-a;
          location ~ .php$ {
              fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
          }
      }
      
      # Site B — PHP 7.4 (legacy application)
      server {
          server_name site-b.com;
          root /var/www/site-b;
          location ~ .php$ {
              fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
          }
      }

      6. Methode 4: PHP-Version über php.ini ändern {#phpini-method}

      In einigen Hosting-Umgebungen, besonders bei Verwendung von CGI– oder FastCGI-PHP-Handlern, können Sie das PHP-Verhalten – und manchmal sogar die Version – durch eine benutzerdefinierte php.ini-Datei beeinflussen, die in Ihrem Website-Root-Verzeichnis platziert wird.

      Erstellen Sie eine benutzerdefinierte php.ini

      1. Erstellen Sie eine Datei namens php.ini in Ihrem Website-Root-Verzeichnis (public_html).
      2. Fügen Sie Ihre Konfigurationsdirektiven hinzu:
      ; Custom PHP configuration
      memory_limit = 256M
      upload_max_filesize = 64M
      post_max_size = 64M
      max_execution_time = 300
      max_input_vars = 3000
      date.timezone = "UTC"

      > Hinweis: Diese Methode steuert PHP-*Einstellungen*, nicht unbedingt die PHP-*Version* selbst. Die Versionswahl über php.ini ist nur auf bestimmten Hosting-Setups möglich. Für vollständige Versionskontrolle verwenden Sie cPanel, .htaccess oder die oben beschriebenen Befehlszeilenmethoden.

      7. Überprüfung Ihrer aktiven PHP-Version {#verify}

      Überprüfen Sie nach jeder Änderung immer, dass die richtige PHP-Version aktiv ist. Es gibt mehrere Möglichkeiten, dies zu tun:

      Methode A: Erstellen Sie eine phpinfo()-Testseite

      1. Erstellen Sie eine neue Datei namens phpinfo.php in Ihrem Web-Root-Verzeichnis (public_html).
      2. Fügen Sie den folgenden Inhalt hinzu:
      <?php
      phpinfo();
      ?>
      1. Navigieren Sie zu https://yourdomain.com/phpinfo.php in Ihrem Browser.
      2. Die Seite zeigt umfassende PHP-Konfigurationsinformationen. Die PHP-Version wird ganz oben angezeigt.

      > Sicherheitswarnung: Löschen Sie diese Datei sofort nach dem Testen. Die phpinfo()-Ausgabe enthüllt sensible Serverkonfigurationsdetails, die Angreifer unterstützen könnten.

      Methode B: Überprüfung über Befehlszeile (SSH)

      php --version
      # or
      php -v

      Erwartete Ausgabe:

      PHP 8.2.10 (cli) (built: Sep  5 2023 08:12:49) (NTS)
      Copyright (c) The PHP Group
      Zend Engine v4.2.10, Copyright (c) Zend Technologies
          with Zend OPcache v8.2.10, Copyright (c), by Zend Technologies

      Methode C: Überprüfung über ein einfaches PHP-Skript

      Für eine weniger ausführliche Überprüfung verwenden Sie dieses minimale Skript statt des vollständigen phpinfo():

      <?php
      echo 'PHP Version: ' . PHP_VERSION;
      echo '<br>PHP Major Version: ' . PHP_MAJOR_VERSION;
      echo '<br>PHP Minor Version: ' . PHP_MINOR_VERSION;
      ?>

      Methode D: Überprüfung über WordPress Admin (für WordPress-Websites)

      In Ihrem WordPress-Dashboard:

      1. Gehen Sie zu Tools → Site Health.
      2. Klicken Sie auf die Registerkarte Info.
      3. Erweitern Sie den Bereich Server.
      4. Suchen Sie nach PHP-Version.

      8. Häufige Fehler nach dem Wechsel der PHP-Version {#common-errors}

      Der Wechsel der PHP-Version kann manchmal Probleme verursachen. Hier sind die häufigsten Probleme und deren Lösungen:

      Fehler 1: White Screen of Death (WSOD) oder leere Seite

      Ursache: Ein Plugin, Theme oder benutzerdefinierter Code verwendet Syntax oder Funktionen, die mit der neuen PHP-Version nicht kompatibel sind.

      Lösung:

      • Aktivieren Sie den WordPress-Debug-Modus, indem Sie zu wp-config.php hinzufügen:
        define('WP_DEBUG', true);
        define('WP_DEBUG_LOG', true);
        define('WP_DEBUG_DISPLAY', false);
      • Überprüfen Sie /wp-content/debug.log auf spezifische Fehlermeldungen.
      • Deaktivieren Sie alle Plugins und wechseln Sie zu einem Standard-Theme, um das Problem zu isolieren.

      Fehler 2: 500 Internal Server Error

      Ursache: Oft verursacht durch einen falschen PHP-Handler in .htaccess oder eine PHP-Erweiterung, die für die neue Version nicht installiert ist.

      Lösung:

      • Entfernen oder korrigieren Sie die AddHandler-Direktive in .htaccess.
      • Überprüfen Sie das Fehlerprotokoll Ihres Servers: tail -f /var/log/apache2/error.log oder tail -f /var/log/nginx/error.log.
      • Stellen Sie sicher, dass erforderliche PHP-Erweiterungen für die neue Version installiert sind.

      Fehler 3: „Call to undefined function” oder „Class not found”

      Ursache: Eine PHP-Erweiterung, die von Ihrer Anwendung benötigt wird (z. B. php-gd, php-mbstring, php-xml), ist nicht für die neue PHP-Version installiert.

      Lösung:

      # Ubuntu/Debian — install missing extensions for PHP 8.2
      sudo apt install php8.2-gd php8.2-mbstring php8.2-xml php8.2-curl php8.2-zip
      
      # Restart web server
      sudo systemctl restart apache2  # or nginx

      Fehler 4: Veraltete Funktionswarnungen

      Ursache: Ihr Code verwendet Funktionen, die in älteren PHP-Versionen veraltet waren und in neueren entfernt wurden (z. B. mysql_*-Funktionen, die in PHP 7.0 entfernt wurden).

      Lösung:

      • Aktualisieren Sie Ihren Code oder Plugins, um moderne Äquivalente zu verwenden (z. B. mysqli_* oder PDO).
      • Wenn sofortige Codeänderungen nicht möglich sind, erwägen Sie, vorübergehend auf einer kompatiblen PHP-Version zu bleiben, während Sie das Upgrade planen.

      Fehler 5: PHP-Version ändert sich nicht, obwohl die Schritte befolgt wurden

      Ursache: Mehrere PHP-Konfigurationen können wirksam sein (z. B. CLI vs. Webserver), oder Caching bedient alte Antworten.

      Lösung:

      • Löschen Sie Ihren Browser-Cache und alle serverseitigen Caches (OPcache, Redis, Varnish).
      • Starten Sie Ihren Webserver neu: ###PPT_NO
      15%

      15% auf alle Hosting-Dienste sparen

      Teste deine Fähigkeiten und erhalte Rabatt auf jeden Hosting-Plan

      Benutze den Code:

      Skills
      Anfangen