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
