Migrar do PHP 5.5 para o ambiente de execução do PHP mais recente

O PHP 5 chegou ao fim do suporte em 30 de janeiro de 2024. Os aplicativos PHP 5 atuais continuarão a ser executados e a receber tráfego. No entanto, o App Engine pode bloquear a reimplantação de aplicativos que usam ambientes de execução após o término da data de suporte. Recomendamos que você migre para o ambiente de execução compatível mais recente em PHP usando as diretrizes nesta página.

Nesta página, mostramos como migrar seu aplicativo PHP 5.5 para um ambiente de execução PHP de segunda geração compatível no ambiente padrão do App Engine.

A migração para um ambiente de execução PHP de segunda geração compatível permite que você use recursos de linguagem atualizados e crie aplicativos mais portáteis com código idiomático.

Problemas de compatibilidade entre o PHP 5.5 e os ambientes de execução do PHP de segunda geração

A documentação oficial do PHP contém informações sobre a migração de diferentes versões do PHP:

Principais diferenças entre o PHP 5.5 e os ambientes de execução do PHP de segunda geração

Veja a seguir um resumo das diferenças entre o PHP 5.5 e os ambientes de execução do PHP de segunda geração no ambiente padrão do App Engine:

Diferenças de uso da memória

Os ambientes de execução de segunda geração têm um valor de referência maior do uso de memória em comparação com os da primeira geração. Isso ocorre devido a vários fatores, como versões diferentes da imagem de base e diferenças na forma como as duas gerações calculam o uso de memória.

Os ambientes de execução de segunda geração calculam o uso de memória da instância como a soma do que um processo do aplicativo usa e o número de arquivos de aplicativos armazenados em cache dinamicamente na memória. Para evitar que aplicativos com uso intensivo de memória tenham encerramentos de instâncias por excederem os limites de memória, faça upgrade para uma classe de instância maior com mais memória.

Diferenças de uso da CPU

Os ambientes de execução de segunda geração podem ter um valor de referência mais alto de uso da CPU durante a inicialização a frio da instância. Dependendo da configuração de escalonamento de um aplicativo, isso pode ter efeitos colaterais não intencionais, como uma contagem de instâncias maior do que o previsto se um aplicativo estiver configurado para escalonar com base na utilização da CPU. Para evitar esse problema, revise e teste as configurações de escalonamento do aplicativo para garantir que o número de instâncias seja aceitável.

Diferenças de cabeçalhos de solicitação

Os ambientes de execução de primeira geração permitem que os cabeçalhos das solicitações com sublinhados (por exemplo, X-Test-Foo_bar) sejam encaminhados para o aplicativo. Os ambientes de execução de segunda geração introduzem o Nginx na arquitetura do host. Como resultado dessa mudança, os ambientes de execução de segunda geração são configurados para remover automaticamente cabeçalhos com sublinhados (_). Para evitar problemas no aplicativo, evite usar sublinhados nos cabeçalhos das solicitações.

Como migrar seu arquivo app.yaml

Coloque um controlador frontal para processar todo o roteamento em seu aplicativo. Para mais informações, consulte Inicialização do aplicativo.

Os ambientes de execução do PHP de segunda geração não permitem que o elemento do gerenciador script seja personalizado. O único valor válido é auto, porque todo o tráfego é exibido pelo comando entrypoint. Todos os gerenciadores de URL não estáticos precisam incluir script: auto para serem implantados.

O comportamento de alguns elementos no arquivo de configuração app.yaml foi modificado:

ElementoTipo de alteraçãoDescrição
entrypointIncluídoOpcionalmente, use esse campo para especificar o comando que será executado quando o aplicativo for iniciado.
threadsafeDescontinuadoTodos os aplicativos são presumidos como thread-safe, o que significa que uma instância pode manipular várias solicitações ao mesmo tempo.
api_versionDescontinuadoObrigatório antes, mas não necessário nos ambientes de execução do PHP de segunda geração.
application_readableDescontinuado
builtinsDescontinuado
librariesDescontinuadoDependências arbitrárias de terceiros podem ser instaladas usando um arquivo de metadados composer.json.
handlersModificado

Se você usar qualquer um dos campos obsoletos, haverá um erro na implantação do aplicativo.

Para mais informações, consulte a referência app.yaml.

Restrições de ambiente de execução reduzidas

Os ambientes de execução do PHP de segunda geração têm menos restrições em comparação com o ambiente de execução do PHP 5.5.

Para mais informações, consulte o ambiente de execução do PHP.

Migrar do SDK PHP do App Engine

Para reduzir o esforço e a complexidade da migração do ambiente de execução, o ambiente padrão do App Engine permite acessar muitos dos pacotes de serviços legados e APIs no ambiente de execução PHP de segunda geração, como o Memcache. Seu aplicativo PHP de segunda geração pode chamar as APIs de serviços incluídos por meio do SDK do App Engine e acessar a maioria dos recursos do ambiente de execução do PHP 5. Nem todos os serviços incluídos legados disponíveis para o PHP 5 têm um serviço correspondente nos ambientes de execução do PHP de segunda geração. Para acessar a lista completa de APIs de serviços incluídos legados disponíveis para os ambientes de execução do PHP de segunda geração, consulte a documentação de referências da API de serviços incluídos legados.

Você também tem a opção de usar produtos do Google Cloud que oferecem recursos semelhantes aos serviços incluídos legados. Esses produtos do Google Cloud fornecem a biblioteca de cliente CLI do Google Cloud. Para os serviços incluídos no pacote que não estão disponíveis como produtos separados no Google Cloud, como pesquisa, é possível usar provedores de terceiros ou outras soluções alternativas. Para saber mais sobre como migrar para serviços desagrupados, consulte Como migrar de serviços incluídos.

Executar o aplicativo localmente

Para testar o aplicativo e executá-lo localmente:

  1. Instale localmente uma versão do PHP que corresponda a um ambiente de execução PHP de segunda geração, disponível no ambiente padrão do App Engine.

  2. Instale um servidor da Web e use-o para disponibilizar seu app localmente.

Por exemplo, inicie o servidor HTTP executando o seguinte comando:

php -S localhost:8080

Em seguida, visualize o aplicativo no navegador da Web em http://localhost:8080.