How2-Host

Alte PHP-Versionen unter Debian 12 sauber entfernen – Schritt für Schritt

Alte PHP-Versionen unter Debian 12 sicher entfernen: Schritt-für-Schritt-Anleitung für saubere Server, weniger Risiken und stabile PHP-Setups.

1 min Lesezeit
Alte PHP-Versionen unter Debian 12 sauber entfernen – Schritt für Schritt

Debian 12 („Bookworm“) gilt als stabil, modern und wartungsfreundlich. Trotzdem passiert es in der Praxis schnell, dass sich mehrere PHP-Versionen parallel ansammeln: ein Upgrade hier, ein Test dort, vielleicht ein externes Repository wie ondrej/php – und plötzlich laufen PHP 8.1, 8.2 und 8.4 gleichzeitig auf dem Server.

Das ist nicht nur unübersichtlich, sondern kann auch Sicherheits-, Wartungs- und Stabilitätsprobleme verursachen. In diesem Artikel zeige ich Schritt für Schritt, wie man alte PHP-Versionen unter Debian 12 sicher und sauber entfernt, ohne Apache, Nginx oder laufende Webanwendungen zu beschädigen.

Warum alte PHP-Versionen entfernen?

Mehrere installierte PHP-Versionen sind an sich kein Fehler – aber langfristig problematisch:

  • Sicherheitsrisiken durch ungepatchte PHP-Versionen
  • Verwirrung bei Updates (apt aktualisiert die falsche Version)
  • Unterschiedliches Verhalten zwischen CLI und Webserver
  • Überflüssige Dienste (z. B. mehrere PHP-FPM-Instanzen)
  • Unnötige Angriffsfläche auf Produktivsystemen

Best Practice ist daher klar: Nur die PHP-Versionen installieren, die wirklich benötigt werden.

Schritt 1: Installierte PHP-Versionen ermitteln

Zunächst prüfen wir, welche PHP-Versionen überhaupt vorhanden sind.

``bash ls /etc/php ``

Typische Ausgabe:

`` 8.1 8.2 8.4 ``

Alternativ detaillierter:

``bash dpkg -l | grep php ``

So erhältst du eine vollständige Paketliste aller installierten PHP-Module.

Schritt 2: Aktive PHP-Version feststellen (sehr wichtig)

Bevor irgendetwas gelöscht wird, muss klar sein, welche PHP-Version aktuell genutzt wird.

PHP-CLI prüfen

``bash php -v ``

Beispiel:

`` PHP 8.4.2 (cli) ``

Apache prüfen (falls genutzt)

``bash apachectl -M | grep php ``

Oder:

``bash a2query -m php* ``

Notiere dir die PHP-Version, die bleiben soll (z. B. PHP 8.4).

Schritt 3: Alte PHP-Module in Apache deaktivieren

Falls Apache verwendet wird, müssen alte PHP-Module zuerst deaktiviert werden.

Beispiel: PHP 8.1 und 8.2 entfernen, PHP 8.4 behalten:

``bash sudo a2dismod php8.1 sudo a2dismod php8.2 ``

Danach sicherstellen, dass die gewünschte Version aktiv ist:

``bash sudo a2enmod php8.4 sudo systemctl reload apache2 ``

Schritt 4: Alte PHP-Versionen deinstallieren

Jetzt können die alten PHP-Versionen vollständig entfernt werden.

Einzelne Version entfernen

``bash sudo apt purge php8.1\* ``

Mehrere Versionen entfernen

``bash sudo apt purge php8.1\ php8.2\ ``

Das \* ist wichtig, damit alle zugehörigen Module (cli, fpm, extensions) entfernt werden.

Schritt 5: System aufräumen

Nach dem Entfernen bleiben oft verwaiste Pakete zurück.

``bash sudo apt autoremove --purge sudo apt autoclean ``

Dieser Schritt sorgt für ein sauberes System ohne Altlasten.

Schritt 6: PHP-CLI-Version korrekt setzen (update-alternatives)

Debian nutzt für PHP die update-alternatives-Mechanik.

``bash sudo update-alternatives --config php ``

Beispielausgabe:

```

  • 0 /usr/bin/php8.4

1 /usr/bin/php8.2 ```

Hier unbedingt die gewünschte Version auswählen.

Schritt 7: PHP-FPM prüfen (falls genutzt)

Wenn PHP-FPM im Einsatz ist (typisch bei Nginx oder modernen Apache-Setups):

``bash systemctl list-units --type=service | grep php ``

Nicht mehr benötigte Dienste stoppen und deaktivieren:

``bash sudo systemctl stop php8.1-fpm sudo systemctl disable php8.1-fpm ``

Schritt 8: Konfigurationsreste entfernen (optional)

Wenn eine PHP-Version vollständig entfernt wurde, können auch die Konfigurationsverzeichnisse gelöscht werden:

``bash sudo rm -rf /etc/php/8.1 sudo rm -rf /etc/php/8.2 ``

⚠️ Nur durchführen, wenn die Versionen wirklich nicht mehr benötigt werden.

Schritt 9: Finaler Systemcheck

Zum Abschluss prüfen wir alles noch einmal:

``bash php -v ls /etc/php ``

Erwartetes Ergebnis:

`` PHP 8.4.x 8.4 ``

✅ Fertig – das System ist aufgeräumt.

Bonus: Alle PHP-Versionen außer einer entfernen (Power-User)

Wer genau weiß, was er tut, kann alte Versionen auch automatisch entfernen:

``bash dpkg -l | grep php | grep -v 8.4 | awk '{print $2}' | xargs sudo apt purge -y ``

⚠️ Nur empfohlen für erfahrene Admins.

Typische Fehlerquellen und Lösungen

| Problem | Ursache | | ------------------------------------- | ----------------------------------- | | Apache startet nicht | falsches PHP-Modul aktiv | | CLI nutzt andere Version | update-alternatives nicht gesetzt | | PHP-FPM läuft doppelt | alte FPM-Services aktiv | | apt will falsche Version installieren | Repository-Prioritäten |

Das Entfernen alter PHP-Versionen unter Debian 12 ist kein Hexenwerk, erfordert aber ein strukturiertes Vorgehen. Wer vorher prüft, welche Version aktiv ist, und Apache/PHP-FPM sauber behandelt, vermeidet Ausfälle und Chaos.

Ein aufgeräumtes PHP-Setup bedeutet:

  • weniger Angriffsfläche
  • klarere Wartung
  • reproduzierbares Verhalten
  • entspannteres Admin-Leben