Como instalar várias versões do PHP no Ubuntu?

No Ubuntu, é possível instalar várias versões do PHP, porém é necessário que você faça alguns ajustes para fazer isso.

Instalando múltiplas versões do PHP no Ubuntu

O pacote sofware-properties-common fornece alguns scripts que permitem que você adicione ou remova PPAs no seu Ubuntu. Ele será necessário para utilizamos o comando add-apt-repository, necessário para o próximo passo deste tutorial.

Instale-o desta forma:

sudo apt update
sudo apt-get install software-properties-common -y

O repositório PHP, que vem por padrão no Ubuntu, permite instalar apenas a versão estável do PHP, que é a 7.x. Portanto, é necessário adicionar o repositório repositório PPA Ondřej Surý. Com ele, podemos instalar múltiplas versões do PHP disponíveis no Ubuntu.

Para adicioná-lo, execute o seguinte comando:

sudo add-apt-repository ppa:ondrej/php -y
sudo apt update

Em algumas versões do Ubuntu, o sudo apt update é dispensável, pois o mesmo já é executado automaticamente após a adição da PPA.

Em seguida, você já poderá instalar a versão do PHP de sua preferência simplesmente adicionando a sua versão ao instalar. Por exemplo:

sudo apt install php8.0 php7.2 php7.3

Ainda é possível instalar dependências específicas de uma versão do PHP. Por exemplo, se você deseja utilizar o gd no PHP 7.2, você poderá executar sudo apt install php7.2-gd.

Se você deseja ver a lista de dependências (módulos ou extensões) específicas para a versão do PHP desejada, basta utilizar o seguinte comando:

apt show php7.2

ou

apt show php7.4

Configurando a versão usada no Apache

Se você escolheu instalar mais de uma versão do PHP no seu Ubuntu, é possível trocar a versão utilizada no Apache. Primeiramente, você precisa se ceritificar que instalou o módulo do Apache para a versão desejada do PHP. Por exemplo, se você quiser usar a versão 8.0 no seu Apache, é necessário instalar o libapache2-mod-php8.0. Se desejar a versão 7.4, precisa da libapache2-mod-php7.4, e assim sucessivamente.

Veja este exemplo com a versão 7.4 do PHP:

sudo apt install libapache2-mod-php7.4

Em seguida, é necessário habilitar o módulo desejado:

sudo a2enmod php7.4

Se você já estiver utilizando alguma outra versão no Apache, você deve desativar os outros módulos do PHP primeiro antes de ativar um novo para não ocorrer conflitos. Você pode fazer isso da seguinte forma:

sudo a2dismod php*
sudo a2enmod php7.4

Configurações de cada versão do PHP

Quando você instala multiplas versões do PHP através do PPA do Ondrej Sury, as configurações dos mesmos ficarão separadas na pasta /etc/php/$numero_da_versao. O php.ini também é separado de acordo com o modo que você utiliza o PHP. Por exemplo, dentro da pasta /etc/php/7.4/ você poderá encontrar as pastas apache e cli. As configurações do php.ini presente dentro de cli afeta o comportamento do PHP quando executado na linha de comando. Já a pasta apache afeta as configurações do PHP referente ao Apache2.

Por exemplo, se você estiver usando o PHP 7.4 no Apache e deseja modificar as configurações do php.ini, você deve modificar o arquivo /etc/php/7.4/apache/php.ini.