Erro Composer: “Allowed memory size”. Como resolver?
Para Magenteiros
Atualizado em 23 de junho de 2021
Ao executar um comando composer update ou composer require, é comum termos o erro parecido com este:
“PHP Fatal error: Allowed memory size of 2147483648 bytes exhausted (tried to allocate 4096 bytes)”.
Este tipo de erro acontece quando tentamos instalar o Magento 2 usando composer, instalar módulos ou mesmo ao atualizar módulos existentes.
O composer nada mais é que um executável PHP com extensão .PHAR.
Ele é executado pelo mesmo PHP que você usa na linha de comando.
Quando executamos um arquivo ou comando php na linha de comando, podemos alterar valores de configuração passando o parâmetro -d.
Sendo assim, também podemos executar o composer informando um número maior de memória. Ou até mesmo sem restringir a memória utilizada e resolvendo o problema acima de uma vez.
Por exemplo: php -dmemory_limit=-1 composer.phar update
Encontrando o composer.phar
Quando digitamos um comando composer, o arquivo composer.phar é chamado.
Para localizar este arquivo, digite: whereis composer
Exemplo:
$ whereis composercomposer: /usr/bin/composer.phar /usr/local/bin/composer
No exemplo acima, podemos ver que o composer.phar a ser executado quando chamamos o composer é o /usr/bin/composer.phar
Resolvendo o problema
Sabendo onde nosso composer.phar está, tudo que precisamos fazer agora é rodar nosso comando original via php e configurando o memory_limit com o valor -1, que indica que não queremos impor nenhum limite de memória nesta execução.
Considerando a localização do nosso composer.phar como mostrado acima, e considerando que queremos executar um comando composer update, tudo que precisamos fazer é:
$ php -dmemory_limit=-1 /usr/bin/composer.phar update
Ou seja, substituímos a palavra composer do comando composer update, por php -dmemory_limit=-1 /usr/bin/composer.phar.
Porque isso acontece
Isso ocorre por conta da configuração do PHP na linha de comando do nosso servidor. Por padrão, o valor máximo de memória (memory_limit) configurado no PHP é 128Mb. E isso é insuficiente para a boa parte das operações feitas com o comando composer.
Você pode alterar esta configuração para um valor maior, alterando o arquivo de configuração php.ini.
Para localizar o arquivo php.ini utilizado pelo php no terminal digite php --ini.
O resultado deste comando lhe trará o arquivo em questão na linha “Loaded Configuration File”. Ex:
$ php --ini Configuration File (php.ini) Path: /etc/php/7.4/cli Loaded Configuration File: /etc/php/7.4/cli/php.ini Scan for additional .ini files in: /etc/php/7.4/cli/conf.d Additional .ini files parsed: /etc/php/7.4/cli/conf.d/01-ioncube.ini, /etc/php/7.4/cli/conf.d/10-mysqlnd.ini, /etc/php/7.4/cli/conf.d/10-opcache.ini, /etc/php/7.4/cli/conf.d/10-pdo.ini, /etc/php/7.4/cli/conf.d/15-xml.ini, /etc/php/7.4/cli/conf.d/20-bcmath.ini,
No exemplo acima, bastaria editar o valor memory_limit no arquivo /etc/php/7.4/cli/php.ini e usar um valor maior que o atual.
- Guest checkout bloqueado na API REST do Magento 2? Confira isso. - 7 de julho de 2026
- Você precisa testar esta plataforma de e-commerce - 9 de fevereiro de 2026
- A hora de montar o seu OnlyFans chegou! Veja 8 ideias pra começar o seu. - 4 de dezembro de 2024
Deixe seu comentário
[fbcomments url="https://www.magenteiro.com/blog/para-magenteiros/composer-allowed-memory-size-resolvido/"]