Instalar php 7.4 y 8.1 en Ubuntu 18 y 20

Instalar php 7.4 y 8.1 en Ubuntu 18 y 20

Magento es un CMS que esta en constante actualización, uno de sus principales componentes es PHP, dependiendo de la versión de Magento, será necesario tener la versión de PHP adecuada.


PHP 7.4 = Magento 2.2.x, Magento 2.3.x Magento 2.4.3
PHP 8.1 = Magento 2.4.4 o superior 

Aunque se puede tener las 2 versiones funcionando y asignar la versión a cada proyecto de magento, es recomendable solo dejar una versión activa.

Instalar PHP 7.4


add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install php7.4

// Instalar dependencias de php7.4
sudo apt-get install php7.4 php7.4-gd php7.4-bcmath php7.4-curl php7.4-iconv php7.4-intl php7.4-zip php7.4-soap php7.4-cli php7.4-common php7.4-json php7.4-opcache php7.4-mysql php7.4-fpm php7.4-mbstring php7.4-dom php7.4-xsl php7.4-gmp php7.4-dev php7.4-imagick libapache2-mod-php7.4 libapache2-mod-fcgid -y

// Instalar mycrypt para php7.4
sudo apt-get -y install gcc make autoconf libc-dev pkg-config
sudo apt-get -y install php7.4-dev
sudo apt-get -y install libmcrypt-dev
sudo pecl install mcrypt-1.0.3

Instalar PHP 8.1


add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install php8.1

// Instalar dependencias de php8.1
sudo apt-get install php8.1-gd php8.1-bcmath php8.1-curl php8.1-iconv php8.1-intl php8.1-zip php8.1-soap php8.1-cli php8.1-common php8.1-opcache php8.1-mysql php8.1-fpm php8.1-mbstring php8.1-dom php8.1-xsl php8.1-gmp php8.1-dev php8.1-imagick libapache2-mod-php8.1 libapache2-mod-fcgid -y

// Instalar mycrypt para PHP 8.1
sudo apt-get -y install gcc make autoconf libc-dev pkg-config
sudo apt-get -y install php8.1-dev
sudo apt-get -y install libmcrypt-dev
sudo pecl install mcrypt-1.0.4

Cambiar versión de php

Si por alguna razón, fue necesario tener más de una versión de PHP se puede cambiar la versión de php con los siguientes comandos:

Si utilizas Nginx:


// Para utilizar php7.4
sudo update-alternatives --set php /usr/bin/php7.4

// Para utilizar php8.1
sudo update-alternatives --set php /usr/bin/php8.1

Si utilizas Apache2:


// Para utilizar php7.4
sudo a2dismod php8.1
sudo a2enmod php7.4

// Para utilizar php8.1
sudo a2dismod php7.4
sudo a2enmod php8.1