Su un LAMP server apache e mariadb con più versioni php installate a volte è necessario diversificare la versione php e php-fpm in uso per i singoli progetti

  1. Verifica dei requisiti

# Verifica le versioni PHP installate
ls /etc/php/

# Controlla se i servizi FPM sono attivi
systemctl status php8.2-fpm php8.3-fpm

# Verifica i moduli Apache abilitati
apache2ctl -M | grep -E 'proxy_fcgi|setenvif'

  • Se vedi proxy_fcgi_module e setenvif_module nella lista, Apache è pronto.
  • Se php8.2-fpm e php8.3-fpm sono attivi, FPM è configurato correttamente.
  1. Conferma dei socket pfm

Ogni versione PHP-FPM usa un socket Unix separato. Verifica i percorsi:

ls /run/php/php*.sock

Dovresti vedere:

/run/php/php8.2-fpm.sock
/run/php/php8.3-fpm.sock

Se manca un socket riavvia il servizio corrispondente:

sudo systemctl restart php8.2-fpm

Se i prerequisiti son ferificati basta spcificare nel file .conf del progetto presenti dentro la directory "site-available"

<FilesMatch "\.php$">
   SetHandler "proxy:unix:/run/php/php8.2-fpm.sock|fcgi://localhost"
</FilesMatch>

ad esempio, se il file conf si chiama drupal.conf conterrà:

<VirtualHost *:80>
   ServerName drupal.tuodominio.it
   DocumentRoot /var/www/drupal/web

   <FilesMatch "\.php$">
       SetHandler "proxy:unix:/run/php/php8.2-fpm.sock|fcgi://localhost"
   </FilesMatch>
</VirtualHost>
 

infine abilita il sito e riavvia Apache:

sudo a2ensite drupal82.conf
sudo systemctl restart apache2