Beispiel: PHP 7.3 vollständig entfernen
System: Debian mit ISPConfig und PHP-Paketen von packages.sury.org
Vor der Deinstallation sicherstellen, dass:
Die folgenden Schritte beziehen sich auf PHP 7.3. Für andere Versionen die Versionsnummer entsprechend ersetzen.
dpkg -l | grep -E '^(ii|rc)\s+php7\.3([-. ]|$)'
Statuskennzeichen:
ii: Paket ist installiert.
rc: Paket wurde entfernt, Konfigurationsreste sind noch registriert.
Zusätzlich installierte PHP-Pakete anzeigen:
dpkg -l | grep -E '^ii\s+php'
In ISPConfig unter System → Additional PHP Versions kontrollieren, ob PHP 7.3 noch als zusätzliche PHP-Version eingetragen ist.
Vor der Entfernung sicherstellen, dass keine Website mehr PHP 7.3 verwendet.
Apache-Konfiguration prüfen:
apache2ctl -M | grep -i php
ls -l /etc/apache2/mods-enabled/ | grep php
PHP-FPM-Dienste prüfen:
systemctl --type=service --all | grep 'php7.3-fpm'
Zusätzlich Webserver-Konfigurationen und gegebenenfalls benutzerdefinierte PHP-FPM-Konfigurationen kontrollieren.
Zunächst eine Vorschau der geplanten Entfernung erstellen:
sudo apt-get -s purge 'php7.3*'
Die Ausgabe sorgfältig prüfen. Es dürfen keine benötigten Pakete anderer PHP-Versionen, keine Datenbankpakete und keine wichtigen Systempakete zur Entfernung vorgeschlagen werden.
Wenn die Paketliste unerwartete Entfernungen enthält: abbrechen und nichts bestätigen.
Wenn die Vorschau plausibel ist, die Entfernung ausführen:
sudo apt-get purge 'php7.3*'
Auch hier die geplante Paketliste vor der Bestätigung kontrollieren.
Hinweis: Das Muster php7.3* erfasst Paketnamen, die mit php7.3 beginnen. Es ist gezielter als ein allgemeines Muster wie php7.*.
Nach der Deinstallation:
dpkg -l | grep -E '^(ii|rc)\s+php7\.3([-. ]|$)'
Falls noch rc-Pakete angezeigt werden, können diese einzeln und gezielt bereinigt werden. Paketnamen aus der Ausgabe übernehmen und keine allgemeinen Purge-Muster für sämtliche Konfigurationsreste verwenden.
Verbliebene Dateien anzeigen:
find /etc/php/7.3 -maxdepth 3 -type f 2>/dev/null
Falls noch Dateien vorhanden sind, kann geprüft werden, ob sie einem Paket gehören:
dpkg -S /etc/php/7.3/mods-available/DATEI.ini
DATEI.ini durch den tatsächlichen Dateinamen ersetzen. Eine fehlende Paketzuordnung allein beweist nicht, dass die Datei unbenötigt ist.
Wenn PHP 7.3 vollständig entfernt ist und die verbliebenen Konfigurationen nicht mehr benötigt werden, zuerst eine Sicherung erstellen:
sudo cp -a /etc/php/7.3 /root/php-7.3-backup
Anschließend den Inhalt kontrollieren:
ls -la /etc/php/7.3
ls -la /etc/php/7.3/mods-available
Falls dort noch alte Erweiterungskonfigurationen wie apcu.ini, imagick.ini oder memcache.ini liegen, prüfen, ob sie ausschließlich zu PHP 7.3 gehören.
Nur wenn das gesamte Verzeichnis nicht mehr benötigt wird, kann es entfernt werden:
sudo rm -r /etc/php/7.3
Alternativ ausschließlich leere Verzeichnisse mit rmdir entfernen. rmdir löscht keine Verzeichnisse, die noch Dateien enthalten.
Installierte PHP-7.3-Pakete erneut prüfen:
dpkg -l | grep -E '^ii\s+php7\.3([-. ]|$)'
PHP-FPM-Dienst prüfen:
systemctl status php7.3-fpm
Ein nicht vorhandener Dienst ist nach der vollständigen Deinstallation erwartbar.
Abschließend prüfen, ob die verbliebenen PHP-Versionen und Websites ordnungsgemäß funktionieren. Bei Bedarf die Webserver-Konfiguration testen:
sudo apache2ctl configtest
Nur wenn der Konfigurationstest erfolgreich ist und die übrigen Websites funktionieren, ist die Bereinigung abgeschlossen.
Wichtige Hinweise