Zum Inhalt springen
Linux, DevOps & Systeme

Wie installiert man PHP 8 auf Ubuntu 20.04

PHP 8.1 auf Ubuntu 20.04 installieren: Schritt für Schritt über das ondrej/php-PPA, Extensions migrieren, Apache-Modul umstellen und CLI-Standard setzen.

Von DI Herwart Wermescher, MBA ↗

PHP ist eine der am häufigsten verwendeten Backend Programmiersprachen. Viele beliebte CMS und Frameworks wie WordPress oder Laravel sind in PHP geschrieben — wer mit Laravel arbeitet, will früher oder später auch E-Mails mit Laravel versenden. Siehe auch meinen Artikel PHP auf Ubuntu 20.04.

PHP 8.1 ist die aktuellste Version der PHP-Sprache. Sie enthält mehrere grundlegende Änderungen, Leistungsverbesserungen und viele neue Funktionen wie benannte Argumente, JIT-Compiler, Union-Typen, Match-Ausdruck und vieles mehr. Wer noch einen Schritt weiter gehen möchte, findet hier eine Anleitung, um PHP 8.2 auf Ubuntu zu installieren.

Dieser Artikel zeigt Ihnen, wie Sie PHP 8 auf Ubuntu 20.04 installieren und mit Nginx und Apache integrieren können. Zum Zeitpunkt der Erstellung dieses Artikels enthalten die Standard-Repositories von Ubuntu 20.04 die Version PHP 7.4. Hier werde ich PHP aus dem ondrej/php PPA-Repository installieren.

Bevor Du allerdings auf PHP 8 aktualisierst oder es installierst, solltest Du sicherstellen, dass Deine Anwendungen PHP 8 unterstützen.

Unknown Expert

Welche Extensions sind derzeit installiert

Einfach die Liste aller derzeit installierten PHP packages ausgeben:

dpkg -l | grep php

Oder besser nur die package Namen und gleich in eine Datei, das benötigst Du später um dieselben packages auch für Deine neue PHP Version zu installieren.

dpkg-query -f '${Package}\n' -W | grep php | tee phppackages.txt

PHP-Repository aktivieren

Ondřej Surý (ein Debian-Entwickler) unterhält ein Repository, das mehrere PHP-Versionen enthält. Um das Repository zu aktivieren, führe folgendes aus:

sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php    # PRESS ENTER wenn danach gefragt wird
sudo apt update

Wenn „Press [ENTER] to continue or Ctrl-c to cancel adding it.“ gefragt wird, einfach ENTER drücken.

Installiere PHP 8 für Apache

Wenn Du Apache als Webserver verwendest, kannst Du PHP als Apache-Modul installieren oder PHP-FPM ausführen. Ich installiere PHP als Apache Module.

sudo apt install -y php8.1 libapache2-mod-php8.1 php8.1-cli 

Nun musst Du nur noch alle Extensions installieren. Dies geht indem Du immer php8.1 angibst. Also z.B. für die mysql und gd Extensions:

sudo apt install -y php8.1-mysql php8.1-gd

Wenn Du mehrere Extensions gleichzeitig installieren wills kanns Du auch folgendes Format verweneden:

sudo apt install -y php8.1-{bcmath,bz2,cli,common,curl,gd,imap,intl,mbstring,mysql,opcache,readline,xml,zip}

Willst Du alle Packages der alten Version installieren musst Du nun dein phppackages.txt entsprechend editieren (alle Packages ohne PHP-Version bleiben. Dort wo eine Version dabei ist einfach auf die neue Version ändern und dann folgenden Befehl ausführen:

xargs sudo apt install -y <phppackages.txt

Kommt ein Fehler wie: „E: Package 'php8.1-json' has no installation candidate“ Dann ist dieses Package meißt schon Standardmäßig installiert. Zur Sicherheit kannst Du die Fehlermeldung googlen …

Nun lösche diesen Eintrag aus der txt Datei heraus und starte den Befehl nochmals.

Nun einfach auf PHP 8 umsteigen

sudo a2dismod php7.4
sudo a2enmod php8.1
sudo systemctl restart apache2

Wenn Dein Apache läuft, lohnt es sich, ihn gleich auch abzusichern — wie Du ein Let’s Encrypt für Apache einrichtest, beschreibe ich in einem eigenen Beitrag.

PHP 8 in der Kommandozeile

Einfach folgenden Befehl eingeben:

sudo update-alternatives --set php /usr/bin/php8.1
php --version

Du kannst natürlich auch zwischen den existierenden Alternativen umschalten:

sudo update-alternatives —config php

Über diesen Blog

Ein Sammelsurium an Denkanstößen.

Hier sammle ich Wissen, Argumente und Links zu allem, was mich beschäftigt — von Technik über Küche bis Nachhaltigkeit. Beruflich berate ich zu Cybersecurity.