Resolver problemas
Erros de limite de memória no Composer e no PHP
Se, ao executar o composer ou alguma tarefa PHP, receber erros como:
- Check https://getcomposer.org/doc/articles/troubleshooting.md#memory-limit-errors for more info on how to handle out of memory errors
- PHP Fatal error: Allowed memory size of XXXXXX bytes exhausted
O erro fatal Allowed memory size ... exhausted confirma que esse processo atingiu o memory_limit. Verifique primeiro a versão, o PHP do terminal e o valor efetivo:
composer --version composer diagnose php --ini php -r 'echo ini_get("memory_limit"), PHP_EOL;'
Para uma execução concreta, aumente de preferência o limite para um valor finito compatível com o plano:
COMPOSER_MEMORY_LIMIT=2G composer install
php -d memory_limit=2G script.php
O teste pontual sem limite que o Composer documenta deve incluir o comando na mesma atribuição:
COMPOSER_MEMORY_LIMIT=-1 composer install
Executar apenas COMPOSER_MEMORY_LIMIT=-1 sem export não transmite o valor ao processo seguinte. -1 elimina o limite do processo do Composer, mas não necessariamente o de processos externos, não aumenta a RAM nem evita os limites PMEM ou NPROC do CloudLinux. Se aparecer Killed, se não houver um erro fatal do PHP ou se a falha persistir, reveja Resource Usage e os seus snapshots.
Antes de alterar permanentemente Select PHP Version > Options > memory_limit, confirme através de php --ini que o PHP do terminal carrega essa configuração. Mantenha um valor finito e compatível com os recursos do plano.
Instalar as dependências previstas
Se o projeto incluir composer.lock, composer install deve respeitar essas versões. Não o substitua por composer update para tentar reduzir a memória: resolveria outro conjunto de dependências. Utilize uma versão mantida do Composer compatível com o projeto e verifique que binário PHP o seu lançador executa realmente.
Os exemplos de variáveis são para uma shell compatível com Bash ou Zsh; o PowerShell e o CMD usam outra sintaxe. O Composer pode executar plugins e scripts do projeto, por isso faça o teste num projeto de confiança e reveja o seu impacto antes de repetir uma instalação em produção. Consulte o guia oficial de memória do Composer.
Também lhe pode ser útil
- O Composer instala um pacote global mas não encontra o seu comando Verifique que o binário global do Composer existe, obtenha o seu diretório real e adicione-o ao PATH...
- Aprender a depurar um erro do WordPress Explica como ler um erro fatal do WordPress, distinguir o que demonstra das suas possíveis causas e...
- Ativar o registo de erros do PHP a partir do ficheiro .htaccess Configure o .htaccess para registar temporariamente os erros PHP fora de public_html, sem os revelar...
- Ativar o registo e a apresentação de erros do PHP Guarde os erros do PHP num ficheiro error_log ou mostre-os no ecrã para encontrar a causa de uma pág...
Algo não bate certo ou mudou? Diga-nos e revemos.