Instalar multiples versiones de PHP en diferentes carpetas

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
Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments