Nesta página, você verá instruções para migrar ambientes de execução do PHP da primeira para a segunda geração. Para fazer upgrade do aplicativo de segunda geração para usar a versão compatível mais recente do PHP, consulte Fazer upgrade de um aplicativo existente.
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.
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:
- Como migrar do PHP 5.5.x para o PHP 5.6.x
- Como migrar do PHP 5.6.x para o PHP 7.0.x
- Como migrar do PHP 7.0.x para o PHP 7.1.x
- Como migrar do PHP 7.1.x para o PHP 7.2.x
- Como migrar do PHP 7.2.x para o PHP 7.3.x
- Como migrar do PHP 7.3.x para o PHP 7.4.x
- Como migrar do PHP 5.5.x para o PHP 5.6.x
- Como migrar do PHP 5.5.x para o PHP 5.6.x
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:
Elemento | Alterar tipo | Descrição |
---|---|---|
entrypoint | Adicionado | Opcionalmente, use esse campo para especificar o comando que será executado quando o aplicativo for iniciado. |
threadsafe | Descontinuado | Todos 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_version | Descontinuado | Obrigatório antes, mas não necessário nos ambientes de execução do PHP de segunda geração. |
application_readable | Descontinuado | |
builtins | Descontinuado | |
libraries | Descontinuado | Dependências arbitrárias de terceiros podem ser instaladas usando um arquivo de metadados composer.json . |
handlers | Modificado |
|
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.
- Instale as dependências de terceiros.
- O ambiente de execução inclui um sistema de arquivos completo.
- Crie threads ou processos em segundo plano que ultrapassem o escopo da solicitação enquanto a instância é executada.
- Use a biblioteca de cliente do Google Cloud para PHP para integrar aplicativos a outros serviços do Google Cloud. Para mais informações, consulte a página Como instalar a biblioteca de cliente do Google Cloud.
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:
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.
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.