Para evitar conflictos primero desinstalar php
sudo apt-get remove 'php*'
sudo apt-get purge 'php*'
Agregar el repositorio de ondrej/php
sudo apt install software-properties-common -y
sudo add-apt-repository ppa:ondrej/php -y
sudo apt update && sudo apt upgrade -y
Instalar el módulo fcgid de apache
sudo apt install libapache2-mod-fcgid -y
Instalar PHP 8.1 y 8.2
sudo apt install -y php8.1-{fpm,cli,common,bcmath,bz2,imap,intl,mbstring,soap,sybase,xsl,zip,curl,xml,mysql,gd,sqlite3,ldap,apcu,imagick}
sudo apt install -y php8.2-{fpm,cli,common,bcmath,bz2,imap,intl,mbstring,soap,sybase,xsl,zip,curl,xml,mysql,gd,sqlite3,ldap,apcu,imagick}
Podemos ver que se las instancias están instaladas
ls -l /run/php/
Iniciar los servicios de PHP
sudo systemctl start php8.1-fpm
sudo systemctl start php8.2-fpm
Habilitamos modulos de apache
sudo a2enmod actions fcgid alias proxy_fcgi
sudo systemctl restart apache2
Crear un archivo de configuración para cada versión de PHP
sudo nano /etc/apache2/sites-available/php8.1.conf
<VirtualHost *:80>
ServerName php8.1.local
DocumentRoot /var/www/php8.1
<Directory /var/www/php8.1>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
<FilesMatch \.php$>
SetHandler "proxy:unix:/run/php/php8.1-fpm.sock|fcgi://localhost"
</FilesMatch>
</VirtualHost>
sudo nano /etc/apache2/sites-available/php8.2.conf
<VirtualHost *:80>
ServerName php8.2.local
DocumentRoot /var/www/php8.2
<Directory /var/www/php8.2>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
<FilesMatch \.php$>
SetHandler "proxy:unix:/run/php/php8.2-fpm.sock|fcgi://localhost"
</FilesMatch>
</VirtualHost>
Validar que los archivos de configuración estén bien
sudo apachectl configtest
Habilitar los sitios
sudo a2ensite php8.1.conf
sudo a2ensite php8.2.conf
Deshabilitar el sitio por defecto
sudo a2dissite 000-default.conf
Reiniciar apache
sudo systemctl restart apache2
Crear los directorios de prueba
sudo mkdir /var/www/php8.1
sudo mkdir /var/www/php8.2
Crear un archivo de prueba en cada directorio
sudo nano /var/www/php8.1/index.php
<?php
phpinfo();
sudo nano /var/www/php8.2/index.php
<?php
phpinfo();
Agregar los dominios a nuestro archivo de hosts
sudo nano /etc/hosts
localhost php8.1.local php8.2.local
Probar los dominios en el navegador
http://php8.1.local
http://php8.2.local