Upgrade auf PHP 8.2-FPM: Installation und Nginx-Konfiguration unter Ubuntu

Einleitung

PHP 8.2 bringt deutliche Performance-Verbesserungen und neue Features (wie «Read-only classes») mit sich. Wer einen Ubuntu-Server mit Nginx betreibt, sollte sicherstellen, dass er nicht auf veralteten PHP-Versionen festsitzt, die keine Sicherheitsupdates mehr erhalten.

Dieses Tutorial führt Schritt für Schritt durch die Installation von PHP 8.2-FPM und die korrekte Einbindung in Ihre Nginx-Server-Blöcke.

Voraussetzungen:

  • Ubuntu Server (20.04, 22.04 oder neuer)
  • Installierter Nginx Webserver
  • Root- oder Sudo-Rechte

Schritt-für-Schritt Anleitung

  1. System aktualisieren
    Bevor wir neue Pakete installieren, bringen wir die Paketquellen auf den neuesten Stand.

    sudo apt update
  2. PHP 8.2 und Module installieren
    Wir installieren den FPM-Dienst (FastCGI Process Manager) sowie die wichtigsten Erweiterungen für gängige CMS wie WordPress oder Typo3.

    sudo apt install php8.2-fpm php8.2-common php8.2-cli php8.2-mysql php8.2-gd php8.2-opcache php8.2-mbstring php8.2-curl php8.2-xml php8.2-bcmath
  3. Dienst starten und aktivieren
    Stellen Sie sicher, dass PHP automatisch startet, wenn der Server neu hochfährt.

    sudo systemctl start php8.2-fpm sudo systemctl enable php8.2-fpm
    Zur Sicherheit prüfen wir die Version:
    php -v
  4. Nginx Konfiguration anpassen
    Damit Nginx die neue Version nutzt, müssen wir den Socket-Pfad in der vHost-Datei ändern. Öffnen Sie Ihre Konfigurationsdatei (z. B. für die Seite mv-lutzenberg):

    sudo nano /etc/nginx/sites-enabled/mv-lutzenberg.conf
    Suchen Sie den fastcgi_pass Eintrag und ändern Sie ihn auf den neuen Socket:

    fastcgi_pass unix:/run/php/php8.2-fpm.sock;
  5. Berechtigungen korrigieren (Wichtig!)
    Ein häufiger Fehler («502 Bad Gateway») entsteht, wenn der Webserver (www-data) nicht auf den PHP-Socket zugreifen darf. Wir setzen die Rechte explizit:

    cd /run/php sudo chown www-data:www-data php8.2-fpm.sock
  6. Nginx neu laden
    Damit die Änderungen wirksam werden:

    sudo systemctl reload nginx

Aufräumen: Alte Versionen entfernen

Wenn alles läuft, sollten Sie alte PHP-Versionen (z. B. 7.4 oder 8.0) entfernen, um Systemressourcen zu sparen und Sicherheitslücken zu vermeiden.

# Dienst stoppen (ersetzen Sie X.X durch die alte Version)
sudo systemctl stop phpX.X-fpm

# Restlos entfernen
sudo apt-get purge phpX.X-fpm
sudo apt-get autoremove
sudo apt-get clean

Troubleshooting

Weiße Seite oder Fehler? Prüfen Sie immer zuerst die Logs, wenn die Seite nach dem Update nicht lädt. Oft fehlen spezifische PHP-Module.
Logs prüfen: sudo tail -f /var/log/nginx/error.log

Fazit

Der Wechsel auf PHP 8.2 ist dank apt und systemd schnell erledigt. Wichtig ist lediglich der korrekte Pfad zum Unix-Socket in der Nginx-Konfiguration.

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert