LINUXMAKER, OpenSource, Tutorials

PHP (8.2, 7.x und 5.6) auf Debian Linux 11 installieren

PHP, auch als „HyperText Processor“ bezeichnet, ist die Open-Source-Programmiersprache, die für die Entwicklung von Webanwendungen verwendet wird. Es ist eine Skriptsprache, die hauptsächlich für das Frontend mit HTML verwendet wird. Es kann verwendet werden, um E-Commerce-Websites zu erstellen, Datenbanken zu verwalten und Sitzungsüberwachung durchzuführen.
Es ist für alle Betriebssysteme verfügbar. Die neueste Version von PHP ist Version 8 und auf dieser Seite wird die Installation von PHP auf dem Linux-System Debian 11 (Bullseye) besprochen.

Voraussetzungen

Zunächst werden alle Pakete des Systems mit dem unten genannten Befehl aktualisiert:

# apt update

Anschliessend werden nach dem Aktualisieren der Pakete nun die Abhängigkeiten installiert, die für den unten genannten Befehl erforderlich sind:

# apt install software-properties-common ca-certificates lsb-release apt-transport-https

 

1. Einrichten des SURY-Repository

Im folgenden Schritt wird auf dem System das SURY-Repository integriert. Dabei ist SURY ein Debian-basiertes PHP-Repository eines Drittanbieters, das die PHP-Software bündelt. Dazu ist der folgende Befehl notwendig, um das SURY-Repository hinzuzufügen

# sh -c 'echo "deb packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'

Zusätzlich wird der GPG-Schlüssel für das Repository notwendig, um es zu verifizieren

wget -qO - packages.sury.org/php/apt.gpg | apt-key add -

2. Installation der gewünschten PHP-Version

Nach der Ergänzung der Source-Liste um ein neues Repository müssen die Pakete erneut sychronisiert werden:

# apt update

In dem SURY-Repository die PHP-Versionen 8.2, 8.1, 8.0, 7.4, 7.3, 7.2. 7.1, 7.0 und PHP 5.6 enthalten. Die derzeit neueste stabile Version von PHP ist 8.0, dennoch werden viele Websites nachwievor mit PHP 7 betrieben. Oder viele PHP-Aplikationen erfordern mangels Pflege ältere PHP-Versionen. Zu diesem Zweck kann jede der erforderlichen PHP-Versionen auf dem System installiert werden. Je nachdem, welche Versionen - auch mehrere - sehen die Befehle wie folgt aus.

# apt -y install php8.2

oder

# apt -y install php7.1

respektive bei mehreren Versionen

# apt -y install php5.6 php7.0 php7.2 php7.3 php7.4

Im Prinzip nimmt man die Möglichkeit, die man benötigt. Zum Beispiel Anbieter von Webspace werden mehrere PHP-Versionen anbieten müssen. Die apt-Option "-y" sorgt dafür, dass die Pakete und zusätzliche Abhängigkeiten ohne Nachfrage installiert werden. Man kann das auch weglassen, wird dann aber um eine Installationsbestätigung gebeten.

3. PHP-Extensions installieren

PHP alleine wäre wenig funktionsfähig ohne die zahlreichen Extensions. Diese lassen genauso installieren.

apt -y install php7.1-mysql php7.1-zip php7.1-cli php7.1-mbstring php7.1-xml php7.1-common php7.1-curl

Das muss man natürlich analog für alle installierten PHP-Versionen durchführen.

4. Wechsel der PHP-Versionen

Dieser und der nachfolgende Schritt sind die eigentlich Interessanten, denn man will ja ohne ständige Neuinstallationen zwischen den PHP-Versionen umschalten können. Das erreicht man auf diesen Weg.

# update-alternatives --config php

Es gibt 6 Auswahlmöglichkeiten für die Alternative php (welche /usr/bin/php bereitstellen).
Auswahl Pfad Priorität Status
------------------------------------------------------------
   0 /usr/bin/php8.2  75  automatischer Modus
   1 /usr/bin/php5.6  56  manueller Modus
   2 /usr/bin/php7.0  70  manueller Modus
*  3 /usr/bin/php7.1  71  manueller Modus
   4 /usr/bin/php7.2  72  manueller Modus
   5 /usr/bin/php7.3  73  manueller Modus
   6 /usr/bin/php7.4  74  manueller Modus
   7 /usr/bin/php8.2  75  manueller Modus
Drücken Sie die Eingabetaste, um die aktuelle Wahl[*] beizubehalten,
oder geben Sie die Auswahlnummer ein:

Die Vorgehensweise ist selbsterklärend. Die dann frisch eingestellte PHP-Version lässt dann wie folgt anzeigen.

# php -v

PHP 7.1.33-52+0~20230409.76+debian11~1.gbp03e0c6 (cli) (built: Apr  9 2023 16:56:50) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies
   with Zend OPcache v7.1.33-52+0~20230409.76+debian11~1.gbp03e0c6, Copyright (c) 1999-2018, by Zend Technologies

5. Wechsel zwischen mehreren PHP-Versionen

Neben Punkt 4 ist das mit der wichtigste Schritt. Beides kann auch in einem Script festgehalten werden, so dass man nur einen Befehl auszuführen hat, anstatt alle hier vorgestellten Befehle.

Um also von dem eingestellten PHP 7.1 auf PHP 5.6 umzustellen, ist zunächst der Befehl "update-alternatives --config php" wie vorgestellt durchzuführen, um in die Standard-PHP-Version zu wechseln.
Damit auch der Apache-Server diese PHP-Version nutzen kann sind diese Befehle in dieser Reihenfolge wichtig.

# a2dismod php7.1
# a2enmod php5.6
# systemctl restart apache2

Will man den Wechsel auch auf den Command Line Interface (CLI) durchführen, dann sind noch folgende Schritte erforderlich.

# update-alternatives --set php /usr/bin/php5.6
# update-alternatives --set phar /usr/bin/phar5.6
# update-alternatives --set phar.phar /usr/bin/phar.phar5.6
# update-alternatives --set phpize /usr/bin/phpize5.6
# update-alternatives --set php-config /usr/bin/php-config5.6

Hinweis – Die Befehle phpize5.6 und php-config5.6 sind im Paket php5.6-dev verfügbar.

Das läuft genauso mit allen anderen PHP-Versionen ab.