Como instalar/atualizar o PHP 8.2 nos sistemas Debian e Ubuntu

O PHP 8.2 é uma grande atualização da linguagem PHP. Ele contém muitos recursos novos, incluindo classes somente leitura

O PHP 8.2 traz novos recursos importantes, como classes somente leitura , nova randomextensão , redação de parâmetros sensíveis , bem como alterações de simplificação de linguagem, incluindo depreciação de propriedades dinâmicas e depreciações relacionadas à interpolação de strings .

Atualmente, os pacotes PHP 8.2 não são oferecidos nos repositórios de software padrão do Debian ou Ubuntu, mas os pacotes PHP 8.2 estão disponíveis no repositório mantido por Ondej Surý . O repositório do Ondrej é o repositório principal e mais atualizado que oferece pacotes PHP e extensões PECL para sistemas operacionais baseados em Debian e Ubuntu, e são usados ??para todos os guias PHP. Watch sobre a instalação do PHP nesses sistemas.

 

PHP

O que há de novo e alterado no PHP 8.2

O PHP 8.2 traz uma lista saudável de novos recursos para segurança e desempenho, e algumas depreciações que podem emitir avisos adicionais em sistemas legados existentes porque depreciam as propriedades dinâmicas, junto com algumas outras depreciações.

Para obter uma lista completa do que há de novo e alterado no PHP 8.2, consulte PHP 8.2: O que há de novo e alterado

Alterações notáveis de extensão e INI

O PHP 8.2 não inclui nenhuma alteração notável que possa afetar o processo de instalação ou atualização. O PHP 8.2 de fato adiciona uma nova extensão chamada random, mas esta extensão é sempre uma extensão empacotada e o PHP não pode ser compilado sem ela.

Uma mudança notável nas configurações e arquivos INI do PHP é que o PHP 8.2 emite um aviso sobre configurações INI mal formatadas que foram silenciadas em versões antigas do PHP.

Atenção: Ações potencialmente destrutivas adiante

As seguintes ações são executadas como sudo, e requerem esse nível de permissões para continuar. Os avisos usuais ao fazer qualquer alteração em todo o sistema também se aplicam aqui. Certifique-se de fazer backup do sistema e verifique os backups antes de continuar.

Começo rápido

Abaixo dos comandos de linha de comando para instalar/atualizar para o PHP 8.2

ubuntu

sudo dpkg -l | grep php | tee packages.txt
sudo add-apt-repository ppa:ondrej/php # Pressione enter quando solicitado.
sudo apt update
sudo apt install php8.2,php8.2-cli,php-8.2{bz2,curl,mbstring,intl}

sudo apt install php8.2-fpm
# OU
# sudo apt install libapache2-mod-php8.2

sudo a2enconf php8.2-fpm

# Ao atualizar de uma versão mais antiga do PHP:
sudo a2disconf php8.1-fpm

## Remover pacotes antigos
sudo apt purgar php8.1*

Debian

sudo dpkg -l | grep php | tee packages.txt

sudo apt install apt-transport-https lsb-release ca-certificates wget -y
sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
sudo sh -c ‘echo “deb https://packages.sury.org/php/ $(lsb_release -sc) main” > /etc/apt/sources.list.d/php.list’
sudo apt update

# Expanda as chaves com todas as extensões necessárias.
sudo apt install php8.2 php8.2-cli php8.2-{bz2,curl,mbstring,intl}

sudo apt install php8.2-fpm
# OU
# sudo apt install libapache2-mod-php8.2

sudo a2enconf php8.2-fpm

# Ao atualizar de uma versão mais antiga do PHP:
sudo a2disconf php8.1-fpm

## Remover pacotes antigos
sudo apt purgar php8.1*

 

Guia Detalhado

1. Liste e armazene a lista de extensões PHP

O comando a seguir lista todos os pacotes relacionados ao PHP que existem no sistema atual e os salva em um arquivo de texto chamado packages.txt. Isso ajuda a reconstruir a mesma lista de pacotes no PHP 8.2.

Em uma nova instalação, esta etapa não é necessária.

dpkg -l | grep php | tee packages.txt

2. Adicione ondrej/phpo PPA como um repositório de software.

Os repositórios mantidos por Ond?ej Surý contêm os principais pacotes PHP e são mantidos atualizados.

Depois que esse repositório é adicionado à lista de fontes de software do sistema, a instalação inicial e as atualizações podem ser feitas com os aptcomandos padrão.

Versões LTS do Ubuntu

sudo add-apt-repository ppa:ondrej/php # Press enter when prompted.
sudo apt update

Debian

sudo apt install apt-transport-https lsb-release ca-certificates ```
software-properties-common
sudo add-apt-repository ppa:ondrej/php # Press enter when prompted.
sudo apt update

3. Instale o PHP 8.2 e extensões

Todos os pacotes PHP 8.2 disponíveis no repositório adicionado no passo #2 seguem php8.2-o padrão de nomenclatura. Extensões agrupadas em PHP, como jsonctypedaterandom, etc, não precisam ser instaladas manualmente.

php8.2-commonpacote inclui vários pacotes PHP comuns. É possível desabilitar seletivamente extensões desnecessárias posteriormente.

sudo apt install php8.2 php8.2-cli php8.2-{curl,bz2,mbstring,intl}

Expanda as chaves acima para incluir todas as extensões necessárias no novo sistema. Ao atualizar uma configuração PHP existente, o packages.txtarquivo criado na etapa 1 deve listar todos os pacotes PHP atuais.

4. Instale e habilite as APIs do servidor

Em um sistema que integra um servidor da web com PHP, instale os pacotes adicionais da API do servidor. A seguir estão alguns exemplos das combinações mais populares:


Servidor web Apache com PHP-FPM

sudo apt install php8.2-fpm
sudo a2enconf php8.2-fpm
sudo a2disconf php8.1-fpm # When upgrading from an older PHP version
sudo service apache2 restart

Servidor web Apache com PHP como um módulo Apache
A instalação do PHP como um módulo Apache não é recomendada, a menos que seja necessário para um caso de uso de ponta.

sudo apt install libapache2-mod-php8.2
sudo a2enmod php8.2
sudo a2dismod php8.1 # When upgrading from an older PHP version
sudo service apache2 restart

Servidor web Nginx com PHP-FPM

sudo apt install php8.2-fpm
sudo service nginx restart

Em seguida, edite o arquivo de configuração Nginx relevante para apontar para o novo socket PHP na fastcgi_passdiretiva:

- fastcgi_pass unix:/run/php/php8.1-fpm.sock;
+ fastcgi_pass unix:/run/php/php8.2-fpm.sock;

5. Teste a instalação do PHP 8.2

Para testar a instalação do PHP CLI, tente executar os seguintes comandos:

php -v
php -m

Espera-se que a saída mostre PHP 8.2 , juntamente com uma lista de extensões PHP habilitadas.

Para testar a integração do servidor web, tente executar um arquivo PHP através do servidor web.

6. Limpe os pacotes PHP antigos

Os comandos a seguir removem versões mais antigas do PHP. Recomenda-se não removê-los até que a instalação do PHP 8.2 esteja funcionando corretamente.

sudo apt purge php8.1* # Change "php8.1" with the old PHP version names.

Isso também remove os arquivos de configuração dos pacotes que estão sendo removidos.


Executando vários PHP 8.2 junto com outras versões

Não é necessário instalar o PHP 8.2 globalmente e remover a versão antiga do PHP, pois é possível executar várias versões do PHP no mesmo servidor simultaneamente.

A CLI do PHP 8.2 será instalada no /usr/bin/php8.2local por padrão, mas será vinculada Da mesma forma, outros arquivos binários do PHP estarão localizados no mesmo diretório ( /usr/bin/php8.0/usr/bin/php7.4, etc). O nome padrão phpterá um link simbólico para a versão mais recente do PHP por padrão, mas é possível alterar para onde o phpcomando padrão está vinculado.

update-alternativescomando fornece uma maneira fácil de alternar entre as versões do PHP para PHP CLI se houver várias versões do PHP vinculadas ao mesmo phpcaminho.

sudo update-alternatives --config php

Isso traz um prompt para selecionar interativamente o caminho binário PHP alternativo que phpaponta.

There are 2 choices for the alternative php (providing /usr/bin/php).

  Selection    Path             Priority   Status
------------------------------------------------------------
* 0            /usr/bin/php8.2   82        auto mode
  1            /usr/bin/php8.1   81        manual mode
  2            /usr/bin/php8.2   82        manual mode

Para definir o caminho sem o prompt interativo:

update-alternatives --set php /usr/bin/php8.1

 

Conclusão

Agora você sabe como instalar o PHP 8.2 para Apache e Nginx em seu servidor Ubuntu 22.04, bem como atualizar ou fazer downgrade para uma versão diferente do PHP.

Eu aprecio seu tempo. Por favor, deixe um comentário abaixo se você tiver algum problema ou tiver alguma sugestão.

Escrito por Portalpower

É pai de família, especialista em WordPress e na produção de conteúdo de tecnologia e otimização para conquistar as melhores posições no Google.

Full Stack na vida, Youtuber Gamer Tech, apaixonado por tecnologia, gosta de silêncio e brownie com café ou Coca-Cola.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *