Usar a plataforma PHP do Elastic Beanstalk - AWS Elastic Beanstalk

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Usar a plataforma PHP do Elastic Beanstalk

Este tópico descreve como configurar, criar e executar seus PHP aplicativos no Elastic Beanstalk.

AWS Elastic Beanstalk suporta várias ramificações de plataforma para diferentes versões da linguagem de PHP programação. Essas plataformas oferecem suporte a aplicativos PHP da web que podem ser executados sozinhos ou no Composer. Veja PHPno AWS Elastic Beanstalk Documento de plataformas para obter uma lista completa das ramificações de plataformas suportadas.

O Elastic Beanstalk fornece opções de configuração que você pode usar para personalizar o software executado EC2 nas instâncias do seu ambiente do Elastic Beanstalk. Você pode configurar as variáveis de ambiente exigidas pelo seu aplicativo, habilitar a rotação de logs para o Amazon S3, mapear pastas na origem do aplicativo que contêm arquivos estáticos para caminhos servidos pelo servidor proxy e definir configurações de PHP inicialização comuns.

As opções de configuração estão disponíveis no console do Elastic Beanstalk para modificar a configuração de um ambiente em execução. Para evitar a perda da configuração do ambiente quando você terminá-la, você pode usar configurações salvas para salvar as configurações e depois aplicá-las a outro ambiente.

Para salvar as configurações no código-fonte, você pode incluir arquivos de configuração. As definições em arquivos de configuração são aplicadas sempre que você cria um ambiente ou implementa a aplicação. Você também pode usar arquivos de configuração para instalar pacotes, executar scripts e realizar outras operações de personalização da instância em implantações.

Se você usa o Composer, pode incluir um arquivo composer.json em seu pacote de origem para instalar pacotes durante a implantação.

Para configurações avançadas PHP e PHP configurações que não são fornecidas como opções de configuração, você pode usar arquivos de configuração para fornecer um INI arquivo que possa estender e substituir as configurações padrão aplicadas pelo Elastic Beanstalk ou instalar extensões adicionais.

As configurações aplicadas no console do Elastic Beanstalk substituem as mesmas configurações em arquivos de configuração, caso elas existam. Isso permite que você tenha configurações padrão em arquivos de configuração e as substitua por configurações específicas de ambiente no console. Para obter mais informações sobre precedência e outros métodos de alteração das configurações, consulte Opções de configuração.

Para obter detalhes sobre as várias maneiras de estender uma plataforma do Elastic Beanstalk baseada em Linux, consulte Estender as plataformas Linux do Elastic Beanstalk.

Considerações sobre a PHP versão 8.1 no Amazon Linux 2

Leia esta seção se você estiver usando a PHPversão 8.1 na ramificação da plataforma Amazon Linux 2.

nota

As informações neste tópico se aplicam somente à ramificação PHP8.1 da plataforma Amazon Linux 2. Não se aplica às filiais da PHP plataforma com base em AL2 023. Também não se aplica à ramificação PHP8.0 da plataforma Amazon Linux 2.

O Elastic Beanstalk PHP armazena os pacotes relacionados ao RPM 8.1 para PHPa ramificação da plataforma 8.1 no Amazon Linux 2 nas instâncias EC2 em um diretório local, em vez do repositório Amazon Linux. Você pode usar rpm -i para instalar os pacotes necessários. A partir da versão 3.5.0 da plataforma PHP 8.1, o Elastic Beanstalk PHP armazena os pacotes relacionados ao RPM 8.1 no seguinte diretório local. EC2

/opt/elasticbeanstalk/RPMS

O exemplo a seguir instala o informações de depuração do php pacote.

$rpm -i /opt/elasticbeanstalk/RPMS/php-debuginfo-8.1.8-1.amzn2.x86_64.rpm

A versão no nome do pacote variará de acordo com a versão real listada no diretório EC2 local/opt/elasticbeanstalk/RPMS. Use a mesma sintaxe para instalar outros RPM pacotes PHP 8.1.

Expanda a seção a seguir para exibir uma lista dos RPM pacotes que fornecemos.

A lista a seguir fornece os RMP pacotes que a plataforma PHP Elastic Beanstalk 8.1 fornece no Amazon Linux 2. Eles ficam localizados no diretório local /opt/elasticbeanstalk/RPMS.

Os números de versão 8.1.8-1 e 3.7.0-1 nos nomes dos pacotes listados são apenas um exemplo.

  • php-8.1.8-1.amzn2.x86_64.rpm

  • php-bcmath-8.1.8-1.amzn2.x86_64.rpm

  • php-cli-8.1.8-1.amzn2.x86_64.rpm

  • php-common-8.1.8-1.amzn2.x86_64.rpm

  • php-dba-8.1.8-1.amzn2.x86_64.rpm

  • php-dbg-8.1.8-1.amzn2.x86_64.rpm

  • php-debuginfo-8.1.8-1.amzn2.x86_64.rpm

  • php-devel-8.1.8-1.amzn2.x86_64.rpm

  • php-embedded-8.1.8-1.amzn2.x86_64.rpm

  • php-enchant-8.1.8-1.amzn2.x86_64.rpm

  • php-fpm-8.1.8-1.amzn2.x86_64.rpm

  • php-gd-8.1.8-1.amzn2.x86_64.rpm

  • php-gmp-8.1.8-1.amzn2.x86_64.rpm

  • php-intl-8.1.8-1.amzn2.x86_64.rpm

  • php-ldap-8.1.8-1.amzn2.x86_64.rpm

  • php-mbstring-8.1.8-1.amzn2.x86_64.rpm

  • php-mysqlnd-8.1.8-1.amzn2.x86_64.rpm

  • php-odbc-8.1.8-1.amzn2.x86_64.rpm

  • php-opcache-8.1.8-1.amzn2.x86_64.rpm

  • php-pdo-8.1.8-1.amzn2.x86_64.rpm

  • php-pear-1.10.13-1.amzn2.noarch.rpm

  • php-pgsql-8.1.8-1.amzn2.x86_64.rpm

  • php-process-8.1.8-1.amzn2.x86_64.rpm

  • php-pspell-8.1.8-1.amzn2.x86_64.rpm

  • php-snmp-8.1.8-1.amzn2.x86_64.rpm

  • php-soap-8.1.8-1.amzn2.x86_64.rpm

  • php-sodium-8.1.8-1.amzn2.x86_64.rpm

  • php-xml-8.1.8-1.amzn2.x86_64.rpm

  • php-pecl-imagick-3.7.0-1.amzn2.x86_64.rpm

  • php-pecl-imagick-debuginfo-3.7.0-1.amzn2.x86_64.rpm

  • php-pecl-imagick-devel-3.7.0-1.amzn2.noarch.rpm

Você pode usar os PECL pacotes PEAR e para instalar extensões comuns. Para obter mais informações sobrePEAR, consulte o site do PEARPHPExtension and Application Repository. Para obter mais informações sobrePECL, consulte o site da PECLextensão.

Os exemplos de comandos a seguir instalam as extensões Memcached.

$pecl install memcache

Ou você também pode usar o seguinte:

$pear install pecl/memcache

Os exemplos de comando a seguir instalam as extensões Redis.

$pecl install redis

Ou você também pode usar o seguinte:

$pear install pecl/redis

Configurar o ambiente PHP

Você pode usar o console do Elastic Beanstalk para permitir a rotação de logs para o Amazon S3, configurar variáveis que seu aplicativo possa ler do ambiente e alterar as configurações. PHP

Para configurar seu PHP ambiente no console do Elastic Beanstalk
  1. Abra o console do Elastic Beanstalk e, na lista Regiões, selecione seu Região da AWS.

  2. No painel de navegação, selecione Ambientes e selecione o nome do ambiente na lista.

    nota

    Se você tiver muitos ambientes, use a barra de pesquisa para filtrar a lista de ambientes.

  3. No painel de navegação, escolha Configuration (Configuração).

  4. Na categoria de configuração Updates, monitoring, and logging (Atualizações, monitoramento e logs), escolha Edit (Editar).

PHPconfigurações

  • Proxy server (Servidor de proxy): o servidor de proxy a ser usado nas instâncias de ambiente. Por padrão, é usado nginx.

  • Document root (Raiz do documento): a pasta que contém a página padrão do site. Se a sua página de boas-vindas não estiver na raiz do pacote de origem, especifique a pasta que a contém relativo ao caminho raiz. Por exemplo, /public se a página de boas-vindas estiver em uma pasta chamada public.

  • Memory limite (Limite de memória): a quantidade máxima de memória que um script tem permissão para alocar. Por exemplo, 512M.

  • Zlib output compression (Compactação de saída Zlib): defina como On para compactar respostas.

  • Permitir URL abertura — Defina como Off para impedir que scripts baixem arquivos de locais remotos.

  • Display errors (Exibir erros): defina como On para mostrar mensagens de erro interno para depuração.

  • Max execution time (Tempo de execução máximo): o tempo máximo em segundos que um script pode ser executado antes que o ambiente o encerre.

Opções de log

A seção Log Options tem duas configurações:

  • Instance profile (Perfil da instância): especifica o perfil da instância que tem permissão para acessar o bucket do Amazon S3 associado à sua aplicação.

  • Habilitar a rotação de arquivos de log para o Amazon S3 — Especifica se os arquivos de log das EC2 instâncias da Amazon do seu aplicativo são copiados para o bucket do Amazon S3 associado ao seu aplicativo.

Arquivos estáticos

Para melhorar o desempenho, você pode usar a seção Arquivos estáticos para configurar o servidor proxy para servir arquivos estáticos (por exemplo, HTML ou imagens) de um conjunto de diretórios dentro do seu aplicativo web. Defina, para cada diretório, o caminho virtual para mapeamento de diretórios. Quando o servidor de proxy recebe uma solicitação para um arquivo no caminho especificado, ele atende o arquivo diretamente em vez de rotear solicitação para seu aplicativo.

Para ver detalhes sobre como configurar arquivos estáticos usando arquivos de configuração ou o console do Elastic Beanstalk, consulte Fornecer arquivos estáticos.

Propriedades de ambiente

A seção Propriedades do ambiente permite que você especifique as configurações do ambiente nas EC2 instâncias da Amazon que estão executando seu aplicativo. Essas definições são passadas para o aplicativo como pares de chave-valor.

Seu código de aplicativo pode acessar propriedades de ambiente usando $_SERVER ou a função get_cfg_var.

$endpoint = $_SERVER['API_ENDPOINT'];

Consulte Propriedades de ambientes e outras configurações de software Para mais informações.

Namespaces para configuração

Você pode usar um arquivo de configuração para definir opções de configuração e executar outras tarefas de configuração de instância durante implantações. As opções de configuração podem ser específicas da plataforma ou se aplicar a todas as plataformas no serviço do Elastic Beanstalk como um todo. As opções de configuração são organizadas em namespaces.

Os namespaces a seguir configuram seu serviço de proxy e opções PHP específicas:

  • aws:elasticbeanstalk:environment:proxy:staticfiles— configure o proxy do ambiente para servir arquivos estáticos. Defina mapeamentos de caminhos virtuais para diretórios de aplicativos.

  • aws:elasticbeanstalk:environment:proxy— especifique o servidor proxy do ambiente.

  • aws:elasticbeanstalk:container:php:phpini— configure opções PHP específicas. Esse namespace incluicomposer_options, o que não está disponível no console do Elastic Beanstalk. Essa opção define as opções personalizadas a serem usadas ao instalar dependências usando o Composer por meio do composer.phar install comando. Para obter mais informações sobre esse comando, incluindo as opções disponíveis, consulte instalar no site getcomposer.org.

O exemplo de arquivo de configuração a seguir especifica uma opção de arquivos estáticos que mapeia um diretório chamado staticimages para o caminho /images, e mostra as configurações para cada uma das opções disponíveis no namespace aws:elasticbeanstalk:container:php:phpini:

exemplo .ebextensions/php-settings.config
option_settings: aws:elasticbeanstalk:environment:proxy: ProxyServer: apache aws:elasticbeanstalk:environment:proxy:staticfiles: /images: staticimages aws:elasticbeanstalk:container:php:phpini: document_root: /public memory_limit: 128M zlib.output_compression: "Off" allow_url_fopen: "On" display_errors: "Off" max_execution_time: 60 composer_options: vendor/package
nota

O aws:elasticbeanstalk:environment:proxy:staticfiles namespace não está definido nas ramificações da AMI PHP plataforma Amazon Linux (antes do Amazon Linux 2).

O Elastic Beanstalk oferece muitas opções de configuração para personalizar o ambiente. Além dos arquivos de configuração, você também pode definir opções de configuração usando o console, as configurações salvas, o EB CLI ou o AWS CLI. Consulte Opções de configuração para obter mais informações.