Für Ubuntu siehe https://php.watch/articles/install-php82-ubuntu-debian
Der Apache-Server kann parallel mit unterschiedlichen PHP-Versionen betrieben und eine Version davon einer Domain explizit zugewiesen werden.
Quelle: https://www.codinghood.de/blog/2021/05/php-7-4-und-php-8-0-zeitgleich-auf-einem-debian-10-mit-apache-und-php-fpm-installieren/
Benötigte Pakete wie curl installieren
sudo apt -y install apt-transport-https lsb-release ca-certificates curl
Mit dem sury PHP Repository kommunizieren > Schlüssel herunterladen und installieren
sudo curl -sSL -o /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
sury PHP Repository zur Source-List hinzufügen
sudo sh -c 'echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
Paketlisten neu einlesen und aktualisieren.
sudo apt update
PHP-Versionen installieren (je nach Bedarf)
sudo apt install php7.4 php7.4-bcmath php7.4-cli php7.4-common php7.4-curl php7.4-dev php7.4-fpm php7.4-gd php7.4-imap php7.4-intl php7.4-json php7.4-mbstring php7.4-mysql php7.4-opcache php7.4-readline php7.4-soap php7.4-sqlite3 php7.4-tidy php7.4-xsl php7.4-zip
sudo apt install php8.0 php8.0-bcmath php8.0-cli php8.0-common php8.0-curl php8.0-dev php8.0-fpm php8.0-gd php8.0-imap php8.0-intl php8.0-mbstring php8.0-mysql php8.0-opcache php8.0-readline php8.0-soap php8.0-sqlite3 php8.0-tidy php8.0-xml php8.0-xsl php8.0-zip
sudo apt install php8.2 php8.2-bcmath php8.2-cli php8.2-common php8.2-curl php8.2-dev php8.2-fpm php8.2-gd php8.2-imap php8.2-intl php8.2-mbstring php8.2-mysql php8.2-opcache php8.2-readline php8.2-soap php8.2-sqlite3 php8.2-tidy php8.2-xml php8.2-xsl php8.2-zip
Check Installiert - sollte bei allen Versionen klappen
sudo systemctl status php7.4-fpm.service
Apache-Module zum Umgang mit den PHP-FPM Installationen
sudo apt install libapache2-mod-fcgid php-fpm
sudo a2enmod actions alias fcgid proxy_fcgi
Version auswählen (Server intern)
sudo update-alternatives --config php
Auswahl Basisversion (Server intern)
sudo update-alternatives --config php-fpm.sock
Standartversion Apache festlegen → hier nur eine Version, die anderen, sofern aktiviert, mit a2disconf abschalten
sudo a2enconf php8.2-fpm.conf
sudo systemctl reload apache2
Nur wenn eine Domain/Subdomain eine andere, als die PHP-Standard-Version, benötigt, die entsprechende Apache-Conf-Datei konfigurieren und Zeile einfügen.
sudo nano /etc/apache2/sites-available/xxx.conf
Zum Beispiel:
Include /etc/apache2/conf-available/php8.0-fpm.conf
sudo systemctl reload apache2
Check PHP-Version auf Webseite
sudo nano /var/www/sites/.../phpinfo.php
<?php phpinfo(); ?>