Como posso carregar arquivos do WordPress maiores que 2 MB para o meu ambiente do Elastic Beanstalk?

4 minuto de leitura
0

Quando carrego arquivos do WordPress maiores que 2 MB para o meu ambiente do AWS Elastic Beanstalk, recebo a seguinte mensagem de erro: "The uploaded file exceeds the upload_max_filesize directive in php.ini."

Breve descrição

A configuração padrão do PHP em uma instância do Amazon Elastic Compute Cloud (Amazon EC2) não permite que você carregue arquivos do WordPress maiores que 2 MB. Para carregar arquivos maiores que 2 MB, altere o valor padrão do parâmetro upload_max_filesize no arquivo /etc/php.ini.

Importante: M e MB são expressões equivalentes para "megabyte". Por exemplo, 2 M é igual a 2 MB. No entanto, use somente M no arquivo de configuração, pois MB não é válido em nesse tipo de arquivo.

Resolução

Escolha a resolução que se aplica à sua pilha de soluções.

Atualize o tamanho de arquivo de carregamento para um ambiente do Elastic Beanstalk que executa uma pilha de soluções PHP

Para aumentar o tamanho de arquivo em todas as instâncias, siga as etapas a seguir a fim de atualizar a imagem de máquina da Amazon (AMI) subjacente.

1.    Em um editor de código, crie um novo arquivo chamado change_upload_size.config e adicione o seguinte código ao arquivo:

files:    "/etc/php.d/99uploadsize.ini":
        mode: "000644"
        owner: root
        group: root
        content: |
            upload_max_filesize = 100M
            post_max_size = 100M
commands:
    remove_old_ini:
        command: "rm -f /etc/php.d/99uploadsize.ini.bak"

Observação: no exemplo anterior, o valor do parâmetro post_max_size é atualizado do padrão de 32M para 100M.

Para modificar os parâmetros do php.ini, como memory_limit, consulte as diretivas de php.ini para post_max_size. O valor máximo de memory_limit no Elastic Beanstalk é de 256M.

2.    Na raiz do pacote de origem do aplicativo, crie um novo diretório chamado .ebextensions e mova o arquivo change_upload_size.config para o diretório .ebextensions.

Se o diretório .ebextensions já estiver dentro do pacote de origem do aplicativo, mantenha o arquivo change_upload_size.config no diretório .ebextensions com os outros arquivos .config.
Exemplo:

├── wp-site.zip/     ├── .ebextensions/
         ├── change_upload_size.config
    ├── wp-content/
    ├── wp-includes/
    ├── wp-admin/
    ├── LICENSE
    ├── README.md
    ├── index.php
    ├── license.txt
    ├── readme.html
    ├── ...
    ├── ...
    ├── ...
    ├── ...
    ├── wp-settings.php
    ├── wp-signup.php
    ├── wp-trackback.php
    └── xmlrpc.php

Importante: para plataformas Amazon Linux 2 baseadas no Elastic Beanstalk, altere o nome do arquivo 99uploadsize.ini para z99uploadsize.ini. Para permitir que as novas configurações do PHP substituam os padrões, altere o nome do arquivo em todos os lugares em .ebextension.

3.    Abra o console do Elastic Beanstalk e, em seguida, crie um arquivo zip do pacote de origem do seu aplicativo.

4.    Para carregar seu código para um ambiente existente do Elastic Beanstalk, escolha seu ambiente e, em seguida, escolha Carregar e implantar.
Observação: para implantar seu código em um novo ambiente do Elastic Beanstalk, consulte Criar um ambiente do Elastic Beanstalk.

Se a mensagem de erro persistir mesmo após o carregamento do arquivo .ebextensions, use um validador YAML para verificar se há erros de espaço em branco em seu código. Além disso, use o comando remove_old_ini para remover arquivos de backup desnecessários. Para obter mais informações, consulte Como estender o php.ini.

Altere o tamanho do arquivo de carregamento para uma única instância do Amazon EC2 que executa uma pilha LAMP

1.    Para abrir o arquivo /etc/php.ini com o editor vi, execute o seguinte comando:

$ sudo vi /etc/php.ini

Observação: o nome ou o caminho do arquivo /etc/php.ini podem variar dependendo da versão do PHP ou da AMI que você está usando.

2.    No editor vi, altere o valor do parâmetro upload_max_filesize para um tamanho maior que 2 MB e salve o arquivo.
Observação: para modificar os parâmetros do php.ini, como memory_limit, consulte as diretivas de php.ini para post_max_size. Para obter mais informações, consulte a entrada post_max_size no site do PHP.

3.    Para reiniciar o servidor Apache normalmente, execute o comando apropriado para seu ambiente.

Para Amazon Linux:

$ sudo service httpd graceful

Para Amazon Linux 2:

$ sudo service httpd reload

Observação: o nome ou o caminho do arquivo /etc/php.ini podem variar dependendo da versão do PHP ou da AMI que você está usando. O comando para reiniciar o servidor Apache também pode variar se você estiver usando uma distribuição diferente da Amazon Linux AMI. O WordPress limita a memória de seus processos PHP por padrão.

Informações relacionadas

Personalização avançada de ambiente com arquivos de configuração (.ebextensions)

Implantar um site WordPress de alta disponibilidade com um banco de dados externo do Amazon RDS no Elastic Beanstalk

Hospedar um blog do WordPress no Amazon Linux 2

Descrição das principais diretivas do php.ini no site do PHP

AWS OFICIAL
AWS OFICIALAtualizada há 5 meses