PHP 8.2 Upgrade und Installation unter Debian mit Apache
In diesem Tutorial wird beschrieben, wie man ein PHP 8.2 Upgrade schnell und einfach installiert. Für den Apache Webserver unter Debian 9, Debian 10 und Debian 11. PHP ist die weit verbreitete Server-Skriptsprache, für dynamische und interaktive Webseiten und Content Managegemt Systeme.
In nur 5 Schritte wird PHP 8.2 für Apache2 auf Debian installiert.
1. Debian als root aktualisieren
$ su -
$ apt update
$ apt upgrade -y && reboot
2. SURY PHP PPA Repository hinzufügen
SURY ist ein Drittanbieter-Repository, das aktuelle PHP Versionen für Debian GNU/Linux anbietet, dieses als root hinzugefügt wird.
$ apt -y install lsb-release apt-transport-https ca-certificates wget
$ wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
$ echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/php.list
3. PHP 8.2 auf Debian installieren
$ apt update
$ apt -y install php8.2
$ update-alternatives --set php /usr/bin/php8.2
Es kann mehr als eine PHP Version auf dem System installiert sein, update-alternatives --set php [version]
aktiviert die Version.
4. Wichtige PHP 8.2 Module auf Debian installieren
$ apt -y install php8.2-cli php8.2-curl php8.2-gd php8.2-intl php8.2-mbstring php8.2-mysql php8.2-opcache php8.2-readline php8.2-xml php8.2-xsl php8.2-zip php8.2-bz2
5. PHP 8.2 Modul für Apache verfürgbar machen
$ apt -y install libapache2-mod-php8.2
$ systemctl reload apache2
Fertig! die Installation ist nun gemacht. Möchte man wissen, welche installierte PHP-Version und welche Module tatsächlich verfügbar sind, zeigt der nächste Abschnitt.
Die Installierte PHP Version überprüfen
$ php -v
PPHP 8.2.3 (cli) (built: Feb 14 2023 16:53:07) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.3, Copyright (c) Zend Technologies
with Zend OPcache v8.2.3, Copyright (c), by Zend Technologies
Die PHP Konfiguration anzeigen und ändern
Zur überprüfung wird die aktuelle PHP-Version und die Einstellungen angezeigt, in dem man eine .php-Datei mit folgendem Inhalt erstellt. Diese die Detail Einstellungen in Tabellenform im Webbrowser ausgibt.
<?php
phpinfo();
?>
Die Datei als phpinfo.php im Verzeichnis „/html“ speichern. Die neu erstellte .php-Datei anschliessend in einem Webbrowser öffnen.
http://meine-domain/phpinfo.php

Die systemweiten PHP Einstellungen findet man unter dem Pfad /etc/php, für änderungen mit Apache 2 editiert man die Datei php.ini.
$ vi /etc/php/8.2/apache2/php.ini
Wird die installierte PHP-Version nicht angezeigt, muss das Modul mit dem Apache helper, mit a2dismod aktiviert werden. Hier ist es php7.4 das deaktiviert wird, die entsprechende Versionsnummer ggf. ersetzen.
PHP Upgrade mit Apache auf Debian Überpüfen
$ a2dismod php7.4
$ a2enmod php8.2
$ systemctl restart apache2
Nach dem Wechsel der Apache 2 PHP-Module die phpinfo.php Seite erneut im Webbrowser öffnen.
Die für Apache 2 verfügbaren PHP-Module sind im Apache Webserver Pfad unter /etc/apache2/mods-available
abrufbar.
$ ll /etc/apache2/mods-available/php*
-rw-r--r-- 1 root root 855 Jul 5 2020 /etc/apache2/mods-available/php7.3.conf
-rw-r--r-- 1 root root 102 Jul 5 2020 /etc/apache2/mods-available/php7.3.load
-rw-r--r-- 1 root root 855 Dec 20 22:32 /etc/apache2/mods-available/php7.4.conf
-rw-r--r-- 1 root root 102 Dec 20 22:32 /etc/apache2/mods-available/php7.4.load
-rw-r--r-- 1 root root 855 Dec 20 22:32 /etc/apache2/mods-available/php8.2.conf
-rw-r--r-- 1 root root 101 Dec 20 22:32 /etc/apache2/mods-available/php8.2.load
Die Apache 2 Module mit a2dismod deaktivieren, mit a2enmod wird ein Apache Modul aktiviert.
Aufschluss über die Modul Informationen gibt der Befehl apt info.
$ apt info libapache2-mod-php8.2
Die php Version einer Website kann auch in der Apache .htaccess Datei festgelegt werden.
Action php /cgi-php82/php
AddHandler php82 .php
Danke für deinen Beitrag, welcher mir sehr geholfen hatte von 8.0 auf 8.2 zu switchen. Ein Hinweis noch, den ich durchführen musste (auf einem Debian 11 mit apache2, Nextcloud, Pihole und Zabbix), zusätzlich zu deinen genannten Steps:
sudo apt install php-fpm
sudo a2enconf php8.2-fpm
sudo systemctl restart apache2
Bleibt Gesund