m folgenden Beispiel wird gezeigt wie man unterschiedliche PHP Versionen auf seiner Linux Kiste mit Apache über das FPM einrichtet.
Ich verwende dazu die PHP Version 7.4, 8.1 und 8.2

PHP FPM Pakete einrichten

apt install php7.4-fpm php8.1-fpm php8.2-fpm

diese Pakete müssen als Dienst im Hintergrund laufen und aktiviert sein.

systemctl start php7.4-fpm 
systemctl enable php7.4-fpm 

systemctl start php8.1-fpm 
systemctl enable php8.1-fpm 

systemctl start php8.2-fpm 
systemctl enable php8.2-fpm 

Globale Konfiguration aktivieren (Vermutlich optional, da man diese Einstellung eigentlich über den Virtual Host übersteuert)

a2enconf php7.4-fpm.conf 
a2enconf php8.1-fpm.conf 
a2enconf php8.2-fpm.conf 

Apache Proxy

diese Module müssen aktiviert werden

sudo a2enmod proxy_fcgi proxy 

Virtual Host Beispiele

Den Pfad in Zeile 16 SetHandler entsprechend anpassen!

<VirtualHost *:80>
     
         ServerName spielwiese.localhost
     
         DocumentRoot "/home/users/stefan/PhpstormProjects/spielwiese/"
         DirectoryIndex index.php
     
         <Directory "/home/users/stefan/PhpstormProjects/spielwiese">
           AllowOverride All
          Options Indexes FollowSymLinks
          Require all granted
    
        </Directory>
    
        <FilesMatch \.php$>
          SetHandler "proxy:unix:/run/php/php8.1-fpm.sock|fcgi://localhost/"
        </FilesMatch>
    
      </VirtualHost>

don’t forget

systemctl restart apache2
systemctl restart php8.1-fpm.service

PHP CLI

Verschiedene Versionen auf der Command Line kann man direkt über den entsprechenden Command aufrufen.

Beispiel:

# php8.1 -v
PHP 8.1.21 (cli) (built: Jul 16 2023 11:01:58) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.21, Copyright (c) Zend Technologies
    with Zend OPcache v8.1.21, Copyright (c), by Zend Technologies

oder

# php7.4 -v
PHP 7.4.33 (cli) (built: Jun  9 2023 07:38:14) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.33, Copyright (c), by Zend Technologies