Em resumo: A versão do PHP altera-se no alojamento, em regra, na área de cliente, num ponto como “Definições do PHP” ou “Versão do PHP”, muitas vezes separado por domínio. Antes precisa de uma cópia de segurança e dos requisitos de sistema do seu CMS; depois, de um teste de funcionamento. Importante depois do PHP2Shell: a seleção determina apenas o ramo do PHP. Se esse ramo tem o patch aplicado tem de lho confirmar o fornecedor de alojamento.
Porque é que tantos alteram agora a versão do PHP
Desde o PHP2Shell, muitos operadores de sites olham pela primeira vez em anos para as suas definições de alojamento. Muitas vezes encontram lá o PHP 7.4 ou 8.1, porque o site foi configurado assim uma vez e nunca ninguém verificou. O projeto PHP já não abastece esses ramos com lançamentos; contra o PHP2Shell disponibilizou apenas correções mínimas no código-fonte para 7.4, 8.0 e 8.1.
A mudança é, na maioria dos fornecedores, um clique. É precisamente isso que a torna arriscada: um site mais antigo, cujo código não foi escrito para versões mais recentes do PHP, pode depois mostrar apenas uma mensagem de erro. Com alguma preparação, isso evita-se. O que o fornecedor assume no âmbito do PHP2Shell e o que cabe a si é descrito na página Alojamento partilhado: o que o fornecedor faz.
A seleção no painel não é o patch
Um equívoco frequente: quem muda na área de cliente de 8.2 para 8.3 não fechou com isso automaticamente o PHP2Shell. Escolhe um ramo que o fornecedor disponibiliza. Se esse ramo contém as correções, ou seja, está na 8.3.36 ou tem um backport confirmado, está nas mãos do fornecedor.
Inversamente: se o seu ramo atual 8.2 estiver com patch no fornecedor, está protegido contra o PHP2Shell, mesmo sem mudar. A passagem para uma versão mais recente faz, ainda assim, sentido, porque o PHP 8.2 chega ao fim do suporte a 31/12/2026. Mande confirmar o nível de patch por escrito; um modelo para isso é oferecido pelo guia Perguntar ao fornecedor de alojamento pelo estado do patch.
Alterar a versão do PHP no alojamento: passo a passo
Os nomes dos menus diferem consoante o fornecedor. Procure na área de cliente termos como definições do PHP, versão do PHP, configuração do PHP ou linguagens de script. Em muitos fornecedores, a seleção está na gestão de cada domínio.
- Anotar o estado atual: Que versão do PHP corre por domínio e subdomínio? Uma captura de ecrã das definições ajuda no regresso.
- Fazer uma cópia de segurança: Ficheiros e base de dados, se possível através da função de cópia de segurança do fornecedor e, adicionalmente, como transferência.
- Verificar os requisitos: Que versões do PHP suporta o seu CMS ou loja na versão instalada? Consta dos requisitos de sistema do fabricante, por exemplo em wordpress.org, shopware.com ou typo3.org.
- Atualizar extensões e temas: Plugins desatualizados são a causa mais frequente de erros após uma mudança de PHP. Atualize-os antes da mudança.
- Usar um ambiente de teste, se existir: Muitos fornecedores oferecem staging ou uma cópia num subdomínio. Mude primeiro aí.
- Mudar: Escolher a nova versão, guardar, esperar alguns minutos. Alguns fornecedores não aplicam a alteração de imediato.
- Testar: Abrir a página inicial, o formulário de contacto, o login, a pesquisa, o carrinho e o processo de pagamento, iniciar sessão na área de administração e guardar.
- Ler o registo de erros: Na área de cliente há em regra um registo de erros do PHP. Os avisos após a mudança mostram onde são necessários ajustes.
Mude fora do horário comercial principal e garanta que uma pessoa que conheça o site está contactável na hora seguinte. Os erros só se notam muitas vezes em funcionalidades pouco usadas.
Qual é a versão certa?
Escolha a versão mais recente que a sua aplicação suporta oficialmente. A razão é simples: cada ramo do PHP recebe atualizações de segurança apenas durante um tempo limitado. Quanto mais recente o ramo, mais tempo tem sossego. As durações atuais são indicadas pelo php.net na página das versões suportadas; como funciona o ciclo é explicado na página Versões do PHP e ciclo de lançamento.
| Ramo | Versão corrigida (PHP2Shell) | Enquadramento |
|---|---|---|
| PHP 8.5 | 8.5.12 | atualmente suportado |
| PHP 8.4 | 8.4.27 | atualmente suportado |
| PHP 8.3 | 8.3.36 | atualmente suportado |
| PHP 8.2 | 8.2.35 | suporte termina a 31/12/2026 |
| PHP 8.1 e anterior | sem lançamento oficial | apenas backports do código-fonte ou de fornecedores |
Se a sua aplicação não suportar nenhuma versão a partir da 8.2, a mudança por si só não é possível. Então é preciso primeiro atualizar ou substituir a aplicação. Este caminho é descrito no nosso serviço Migração do PHP 8.1 e anteriores.
Obstáculos típicos após a mudança
Uma página em branco ou um erro 500 indica em regra um plugin ou tema que não suporta a nova versão. O registo de erros indica normalmente o ficheiro e a linha. Desative o causador ou volte temporariamente atrás.
As definições próprias do PHP perdem-se por vezes na mudança. Quem, por exemplo, tinha definido um limite de upload mais alto ou um tempo de execução mais longo para scripts deve verificar se esses valores continuam a valer para a nova versão. Tenha o cuidado de não sobrepor medidas provisórias do fornecedor contra o PHP2Shell.
Se o site mostrar, após a mudança, conteúdos antigos ou erros estranhos, pode ser culpa de uma cache. Esvazie a cache do CMS e de eventuais plugins de cache. Se o problema persistir, pergunte ao fornecedor se as caches do lado do servidor têm de ser reconstruídas.
Não se esqueça de subdomínios, instalações de teste e diretórios antigos. Uma cópia do site esquecida há muito em PHP 7.4 é tão vulnerável como o site principal. Como se livrar de tais heranças é descrito no artigo Desativar versões antigas do PHP.
Como ajuda concretamente a PHP SOS?
- Levantamos que versões do PHP correm nos seus domínios e subdomínios e esclarecemos o nível de patch com o fornecedor de alojamento.
- Verificamos a compatibilidade da sua aplicação e mudamos primeiro num ambiente de teste.
- Acompanhamos a mudança, analisamos o registo de erros e corrigimos erros ou voltamos atrás de forma controlada.
- Onde a aplicação não suporta uma versão suportada, planeamos a migração e protegemos o período de transição.
Perguntas frequentes
Mudar para uma versão mais recente do PHP fecha o PHP2Shell?
Só se o fornecedor de alojamento tiver aplicado o patch à versão escolhida. Na área de cliente escolhe, em regra, apenas o ramo, por exemplo 8.3. Se esse ramo está na 8.3.36 ou num backport confirmado é decisão do fornecedor.
Que versão do PHP devo escolher?
A versão mais recente que o seu CMS ou loja suporta, segundo os requisitos de sistema do fabricante. O PHP 8.2 chega ao fim do suporte a 31/12/2026, por isso a 8.3 ou mais recente é a melhor escolha, se a sua aplicação o permitir.
O que acontece se o site deixar de funcionar depois da mudança?
Volte a definir a versão anterior na área de cliente. Anote a mensagem de erro do registo de erros e mande corrigir a causa antes de tentar de novo. Não fique de forma duradoura numa versão sem atualizações de segurança.
Posso definir versões diferentes do PHP para domínios diferentes?
Em muitos fornecedores, sim, por domínio, subdomínio ou diretório. É prático para testes, mas tem o risco de uma versão antiga continuar a correr num subdomínio esquecido.