- Veröffentlicht am
- • How2-Host
PHP-Upgrade unter Debian 12: Von PHP 8.2 auf PHP 8.4 Schritt für Schritt
- Autor
-
-
- Benutzer
- tmueller
- Beiträge dieses Autors
- Beiträge dieses Autors
-
Debian 12 („Bookworm“) bringt standardmäßig PHP 8.2 mit. Für viele Anwendungen ist das vollkommen ausreichend. Wer jedoch neuere Features nutzen, Sicherheitsupdates früher erhalten oder mehrere Systeme konsistent auf einem aktuellen PHP-Stand halten möchte, kommt um ein Upgrade auf PHP 8.4 nicht herum.
Da Debian in den offiziellen Paketquellen bewusst konservativ bleibt, ist PHP 8.4 dort (noch) nicht enthalten. In diesem Artikel zeige ich daher den bewährten Weg über das Sury-Repository, das sich seit Jahren als De-facto-Standard für aktuelle PHP-Versionen unter Debian etabliert hat.
Der Beitrag richtet sich an Administratoren und Entwickler, die Apache oder Nginx betreiben und entweder mod_php oder PHP-FPM einsetzen.
Ausgangssituation
- Betriebssystem: Debian 12 (Bookworm)
- Aktuelle PHP-Version: PHP 8.2
- Zielversion: PHP 8.4
- Webserver: Apache oder Nginx
- Produktivsystem oder Staging-Server
Wichtig: Vor jedem Versionssprung empfiehlt sich ein Backup relevanter Konfigurationsdateien und Anwendungen. Besonders produktive Systeme sollten zunächst in einer Testumgebung aktualisiert werden.
Warum das Sury-Repository?
Das Repository von Ondřej Surý (ehemaliger Debian-PHP-Maintainer) bietet:
- aktuelle PHP-Versionen (inkl. Security-Fixes),
- saubere Parallelinstallation mehrerer PHP-Versionen,
- vollständige Modulunterstützung (FPM, CLI, Apache, Extensions),
- sehr gute Pflege und Community-Akzeptanz.
Kurz: der Standardweg für modernes PHP unter Debian.
Schritt 1: System vorbereiten
Zunächst werden benötigte Systempakete installiert, um externe Paketquellen sicher einzubinden:
sudo apt update
sudo apt install -y ca-certificates apt-transport-https lsb-release wget gnupg
Schritt 2: Sury-Repository einbinden
GPG-Schlüssel hinzufügen
sudo mkdir -p /etc/apt/keyrings
wget -qO- https://packages.sury.org/php/apt.gpg | \
sudo gpg --dearmor -o /etc/apt/keyrings/sury-php.gpg
Repository eintragen
echo "deb [signed-by=/etc/apt/keyrings/sury-php.gpg] \
https://packages.sury.org/php/ $(lsb_release -sc) main" | \
sudo tee /etc/apt/sources.list.d/sury-php.list
Danach die Paketliste aktualisieren:
sudo apt update
Schritt 3: PHP 8.4 installieren
Variante A: PHP-FPM (empfohlen)
Diese Variante eignet sich für Nginx oder Apache mit Proxy-FPM:
sudo apt install -y \
php8.4-fpm php8.4-cli php8.4-common \
php8.4-mysql php8.4-xml php8.4-curl \
php8.4-mbstring php8.4-zip php8.4-gd php8.4-intl
Variante B: Apache mit mod_php
Wenn PHP direkt als Apache-Modul läuft:
sudo apt install -y \
php8.4 libapache2-mod-php8.4 php8.4-cli php8.4-common \
php8.4-mysql php8.4-xml php8.4-curl \
php8.4-mbstring php8.4-zip php8.4-gd php8.4-intl
Schritt 4: PHP-Version für CLI umstellen
Nach der Installation existieren PHP 8.2 und PHP 8.4 parallel.
Die Standardversion für die Kommandozeile wird über update-alternatives gesetzt:
sudo update-alternatives --set php /usr/bin/php8.4
Überprüfung:
php -v
Schritt 5: Webserver auf PHP 8.4 umstellen
Apache mit mod_php
sudo a2dismod php8.2
sudo a2enmod php8.4
sudo systemctl restart apache2
Apache mit PHP-FPM
sudo systemctl enable --now php8.4-fpm
sudo systemctl restart apache2
Achte darauf, dass die Apache-Konfiguration auf den richtigen FPM-Socket verweist:
/run/php/php8.4-fpm.sock
Nginx mit PHP-FPM
sudo systemctl enable --now php8.4-fpm
sudo systemctl restart nginx
In der Nginx-Site muss ebenfalls der neue Socket eingetragen sein:
fastcgi_pass unix:/run/php/php8.4-fpm.sock;
Schritt 6: Funktionstest
PHP-FPM prüfen
systemctl status php8.4-fpm
Geladene Module anzeigen
php -m
Optional: phpinfo()
Eine phpinfo()-Seite zeigt zuverlässig, welche PHP-Version tatsächlich vom Webserver genutzt wird.
Schritt 7: Alte PHP-Version entfernen (optional)
Erst wenn alle Anwendungen stabil laufen, kann PHP 8.2 entfernt werden:
sudo apt purge -y php8.2\*
sudo apt autoremove -y
Typische Stolperfallen
- FPM-Socket vergessen anzupassen → häufigste Fehlerquelle bei Nginx/Apache
- Fehlende Extensions → jede PHP-Version benötigt eigene Module
- CLI ≠ Webserver
→
php -vzeigt nicht zwingend die Web-Version - Produktivsysteme ohne Testlauf → besser erst Staging aktualisieren
Das Upgrade von PHP 8.2 auf PHP 8.4 unter Debian 12 ist mit dem Sury-Repository sauber, sicher und gut kontrollierbar möglich. Dank Parallelinstallation lassen sich bestehende Systeme risikolos migrieren, testen und bei Bedarf wieder zurückschalten.
Wer regelmäßig PHP-Updates durchführen möchte, sollte den Einsatz von PHP-FPM und klar getrennten Versionen ohnehin als Best Practice betrachten.