Sistemas

Como atualizar o PHP no Ubuntu com CloudPanel, sem complicar

Um passo a passo para conferir pacotes, simular a atualização do PHP e validar os sites no Ubuntu com CloudPanel ou painéis equivalentes.

Ilustração de manutenção e atualização segura de PHP em servidor Ubuntu com painel de hospedagem.
Confira os pacotes, aplique a correção e valide os sites e processos. · Crédito: Ilustração editorial gerada com inteligência artificial para ernani.dev.

Se você usa Ubuntu com CloudPanel, a correção do PHP passa pelos pacotes do servidor e pela conferência dos sites depois. Vamos fazer isso por etapas, sem aproveitar a emergência para trocar toda a instalação.

Em 21 de outubro de 2026, o PHP publicou correções críticas nas versões 8.2.35, 8.3.36, 8.4.27 e 8.5.12. Use a versão corrigida ou posterior da mesma série. Alerta oficial. O contexto das falhas está no artigo anterior; aqui, o foco é aplicar a atualização.

1. Confirme se este roteiro serve para você

Os comandos atendem instalações com pacotes PHP versionados gerenciados pelo APT, como php8.4-fpm. Esse padrão aparece na documentação do CloudPanel. Outros painéis só entram neste roteiro se usarem o mesmo modelo.

Não aplique a seleção abaixo a Docker, PHP compilado manualmente, pacotes ea-php do cPanel ou pacotes próprios do Plesk. Cada um exige seu procedimento. A seleção também não cobre módulos libapache2-mod-php nem extensões com outros prefixos: revise-os separadamente.

Tenha backup recuperável dos sites, bancos e configurações, acesso ao console do provedor e uma janela de manutenção. Execute os blocos separadamente, como root, na mesma sessão Bash; quem usa sudo deve adaptar os comandos administrativos. Não cole tudo de uma vez.

2. Veja o que existe e o que está em uso

cat /etc/os-release
dpkg-query -W -f='${db:Status-Abbrev} ${binary:Package} ${Version}\n' 'php*'

O dpkg-query permite conferir estado, nome e versão dos pacotes. Registre a saída antes da mudança. Uma versão antiga instalada não prova que algum site a utiliza; também não é motivo para removê-la às cegas.

No CloudPanel, confira a versão em PHP Settings de cada site. Documentação das configurações. Liste cron jobs, filas e processos persistentes, como workers do Laravel/Horizon. O php -v genérico mostra o PHP do terminal, que pode ser diferente. Não altere update-alternatives para tentar corrigir essa diferença durante a manutenção.

3. Atualize os índices e confira a origem

apt-get update

Se houver erros de assinatura, download ou repositório, pare e resolva antes de continuar, mesmo que parte dos índices tenha sido atualizada.

Agora selecione apenas os pacotes PHP versionados já instalados, veja seus candidatos e simule:

mapfile -t php_pkgs < <(
  dpkg-query -W -f='${binary:Package} ${db:Status-Status}\n' |
    awk '$2 == "installed" && $1 ~ /^php[0-9]+[.][0-9]+([-:]|$)/ {print $1}'
)

if ((${#php_pkgs[@]} == 0)); then
  printf '%s\n' 'STOP: php_pkgs is empty.'
else
  printf '%s\n' "${php_pkgs[@]}"
  apt-cache policy "${php_pkgs[@]}"
  apt-get -s --no-remove install --only-upgrade "${php_pkgs[@]}"
fi

Se aparecer STOP, não prossiga: revise o método de instalação. A variável php_pkgs precisa continuar disponível na mesma sessão.

Em apt-cache policy, confira Installed, Candidate e a origem. Manual do apt-cache. Em Ubuntu 24.04, os repositórios devem ser compatíveis com Noble. Não misture Noble com outra distribuição, como Resolute, nem adicione um PPA apenas para fazer a versão aparecer.

Atualização disponível não significa correção confirmada. Compare a versão e a revisão completa do pacote com o boletim do fornecedor. Um backport pode manter o número antigo, mas exige confirmação explícita de que corrige estas falhas. Se o repositório ainda não entregar a correção, procure o suporte e planeje uma alternativa compatível; não declare o servidor protegido.

4. Revise e só então instale

O -s simula; --no-remove interrompe propostas com remoções; --only-upgrade restringe os alvos solicitados aos já instalados. Confira também dependências que a resolução possa exigir. Manual do APT.

Revise versões, dependências, pacotes retidos, conflitos e qualquer mudança de fornecedor. Se a simulação falhar ou algo parecer estranho, pare. Não force a transação, não faça full-upgrade nem autoremove como atalho.

Com a proposta aprovada, ainda na mesma sessão:

if ((${#php_pkgs[@]} > 0)); then
  apt-get --no-remove install --only-upgrade "${php_pkgs[@]}"
else
  printf '%s\n' 'STOP: php_pkgs is empty.'
fi

O comando mantém a confirmação interativa, sem -y. Leia o resumo novamente. Se houver pergunta sobre arquivo de configuração, compare as diferenças com seu backup; não substitua ajustes do painel indiscriminadamente. Aguarde o término e confirme que não houve erros.

5. Confira o PHP que realmente atende os sites

Repita o inventário e compare as revisões instaladas com a correção esperada. Abaixo, 8.5 é apenas exemplo: use somente se essa série estiver instalada e em uso; adapte para cada série necessária.

php8.5 -v
php-fpm8.5 -v
systemctl status php8.5-fpm --no-pager
systemctl status nginx --no-pager

Esses comandos conferem binários no disco e estado dos serviços. Não provam, sozinhos, que todos os workers antigos foram substituídos. Verifique os processos e a versão efetiva da aplicação por diagnóstico restrito, sem deixar uma página phpinfo() pública.

Se ainda houver processos antigos no FPM correspondente, teste a configuração e reinicie somente esse serviço, considerando a breve interrupção:

php-fpm8.5 -t && systemctl restart php8.5-fpm

O && impede o reinício se o teste falhar. As opções -v e -t estão no manual do PHP-FPM. Se o pacote já renovou corretamente os processos, não repita o reinício por rotina. Filas persistentes precisam de verificação própria.

Por fim, teste páginas, login, formulários, cron e filas; acompanhe os logs do PHP, Nginx e aplicação. Atualizar apenas PHP não exige automaticamente reiniciar o servidor inteiro.

A manutenção termina quando o pacote corrigido está em uso e os sites foram testados. Se uma série antiga não tiver correção comprovada do fornecedor, planeje a migração, sem confundir pacote instalado com serviço ativo.

Fontes consultadas em 21 de outubro de 2026.

EN

Ernani Nascimento

Desenvolvimento de sistemas, inteligência artificial, automações, dados e jogos. Um espaço para compartilhar experiências e aprendizados construindo projetos reais.

Conheça o autor ↗

Continue explorando.

DA IDEIA À PRÁTICA

Tem algo em mente?
Vamos construir.

Vamos conversar ↗