Wie installiert man PHP 8 auf Ubuntu 20.04

Inhaltsverzeichnis

PHP ist eine der am häufigsten verwendeten Backend Programmiersprachen. Viele beliebte CMS und Frameworks wie WordPress oder Laravel sind in PHP geschrieben. 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.

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

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
Teilen:
Weitere Posts
ChatGPT für CISOs

Eingangsstatement ChatGPT kann erfahrene ISMS-Berater nicht ersetzen, aber es bietet eine wertvolle Unterstützung bei schnellen Recherchen, der Dokumentenerstellung und konkreten Fragestellungen. So können Berater sich

Sende uns eine Nachricht