Eu simplesmente não consigo resolver este.
Estou no plano básico de Linode 1G RAM. Tentando instalar um pacote via Composer e não está me deixando. Meu limite de memória está definido como "-1" no PHP.ini
Há mais alguma coisa que eu possa fazer para instalar isso?
Loading composer repositories with package information
Updating dependencies (including require-dev)
- Installing thujohn/rss (dev-master df80a7d)
Downloading: 100%
PHP Fatal error: Uncaught exception 'ErrorException' with message 'proc_open(): fork failed - Cannot allocate memory' in phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php:975
Stack trace:
#0 [internal function]: Composer\Util\ErrorHandler::handle(2, 'proc_open(): fo...', 'phar:///usr/loc...', 975, Array)
#1 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php(975): proc_open('stty -a | grep ...', Array, NULL, NULL, NULL, Array)
#2 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php(853): Symfony\Component\Console\Application->getSttyColumns()
#3 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php(818): Symfony\Component\Console\Application->getTerminalDimensions()
#4 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php(752): Symfony\Component\Console\Application->getTerminalWidth()
#5 phar:///usr/local/bin/com in phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php on line 975
Fatal error: Uncaught exception 'ErrorException' with message 'proc_open(): fork failed - Cannot allocate memory' in phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php:975
Stack trace:
#0 [internal function]: Composer\Util\ErrorHandler::handle(2, 'proc_open(): fo...', 'phar:///usr/loc...', 975, Array)
#1 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php(975): proc_open('stty -a | grep ...', Array, NULL, NULL, NULL, Array)
#2 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php(853): Symfony\Component\Console\Application->getSttyColumns()
#3 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php(818): Symfony\Component\Console\Application->getTerminalDimensions()
#4 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php(752): Symfony\Component\Console\Application->getTerminalWidth()
#5 phar:///usr/local/bin/com in phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php on line 975
php
laravel
laravel-4
composer-php
ericbae
fonte
fonte
Parece que você fica sem memória de troca, tente isso
como mencionado por @ BlackBurn027 nos comentários abaixo, esta solução foi descrita aqui
fonte
Como guia de solução de problemas do compositor aqui Isso pode estar acontecendo porque o VPS fica sem memória e não possui espaço de troca ativado.
Para ativar a troca, você pode usar, por exemplo:
Ou, se acima não funcionou, você pode tentar criar um arquivo de troca
fonte
Eu enfrentei o mesmo problema. Estou em uma microinstância gratuita da AWS que possui menos memória. Eu sempre tento uma das opções abaixo e sempre funciona (antes de tudo isso, verifique se você tem a versão mais recente do compositor instalada)
ou remova o conteúdo da pasta do fornecedor e tente atualizar o compositor.
A segunda opção tenta atualizar todos os componentes; se não houver atualização, ele pega o pacote no cache ou o arquivo dist
Nota: Altere o limite de memória conforme sua escolha.
ou
Crie uma partição de troca e tente. A partição de troca é a parte do disco rígido que o linux usa como memória virtual quando fica sem memória física. É semelhante ao arquivo de troca do Windows apenas em vez de usar um arquivo real, o linux usa uma partição no disco rígido.
Espero que isto ajude
fonte
sudo php -dmemory_limit=750M composer.phar update
esse erro,Could not open input file: composer.phar
por favor ajudeFácil, digite estes comandos:
rm -rf vendor/
rm -rf composer.lock
php composer install --prefer-dist
Deve funcionar para máquinas com pouca memória
fonte
Aqui estão as etapas para corrigir o problema: (método de alocação rápida e instantânea de arquivo SWAP usado)
Configuração do SWAP do servidor (Ubuntu 16.04 SWAP para corrigir erros de falta de memória)
Verifique se você já possui swap, memória e tamanho do disco:
Crie um arquivo de permuta: (altere 1G para 4G se você quiser 4GB de memória SWAP)
Verifique o arquivo de troca:
Atribuir arquivo de troca:
Verifique se a troca está OK, memória e tamanho do disco:
Anexar arquivo de troca na reinicialização do sistema:
Ajuste as configurações do arquivo de troca:
Prioridade de arquivo SWAP: (0-100% => 0: Não coloque para trocar, 100: Coloque em SWAP e libere a RAM)
Remover inode do cache: (100: o sistema remove as informações do inode do cache muito rapidamente)
fonte
sudo nano /etc/sysctl.conf
. Então, pulo, reinicio o Nginx e o façocomposer install
(anteriormente removi o diretório do fornecedor) e está funcionando. Obrigado!Eu tive um mesmo problema no vagrant. Corrigi-o por alocar mais memória.
fonte
vb.customize ...
você pode fazervb.memory = 1024
.Experimentar
é basicamente aumentar a memória de troca
sudo /bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024 && sudo /sbin/mkswap /var/swap.1 && sudo /sbin/swapon /var/swap.1
fonte
Tente isso:
fonte
Aqui está a solução alternativa que eu achei que funciona para mim todas as vezes:
fonte
Eu tentei apenas excluindo a pasta do fornecedor e o arquivo composer.lock e, em seguida, executo o comando
composer clear-cache
e, em seguidacomposer install
. Por isso, funciona sem nenhum erro.fonte
você pode usar o seguinte para verificar sua memória livre (swap)
Para ativar a troca, você pode usar, por exemplo:
fonte
free -m
e percebeu que não tinha memória, nem mesmo em troca .. então fezsudo reboot
e funcionouEste parece ser um problema recorrente com 1 GB e instâncias de servidor menores. Além de tentar encerrar os processos e ajustar as configurações de troca, você pode instalar em uma máquina local e fazer o upload.
fonte
Às vezes, pelo compositor com atualização automática, resolve o problema
Felicidades
fonte
composer self-update
, se alguém não tão familiarizado com o compositor quiser ler esta resposta.Tente o seguinte:
Este trabalho para mim no Centos 6
fonte
Aumentei o PHP
memory_limit
dos 128M padrão para 512M e reiniciei o servidor. Isso resolveu o problema.fonte
Eu entro nessa situação na maioria das vezes, então normalmente eu seguia a etapa de definir a memória de troca.
Mas agora encontrei um truque alternativo simples que funcionou para mim.
Executar
composer update --no-dev
diferente decomposer update
fonte
Eu resolvi o mesmo problema no Vagrant. Eu aumentei o valor de memory_limit e cache de compositor de exclusão: sudo rm -R ~ / .composer e recarga finalmente vagabundo.
fonte
tenho o mesmo problema com a atualização php composer.phar na minha hospedagem 512mb.
resolvido com o php composer.phar install
fonte
Faça uma troca e execute o comando do compositor novamente. Espero que funcione para você.
fonte
No meu caso, tentei tudo o que foi listado acima. Eu estava usando o Laravel e o Vagrant com 4 GB de memória e uma troca, com o limite de memória definido como -1. Eu apaguei o fornecedor / e tentei outras versões do PHP. Finalmente, eu consegui trabalhar executando
E então a instalação do compositor funcionou novamente como de costume.
fonte
Eu tive um problema semelhante no servidor mais barato (512 MB de RAM) hospedado no DigitalOcean e também estava executando o Jenkins CI no mesmo servidor. Depois que parei a instância do Jenkins, o comando de instalação do compositor funcionou (até certo ponto, ele falhou com a extensão mcrypt ausente, além de já estar instalada!).
Talvez se você tiver outro aplicativo em execução no servidor, talvez valha a pena tentar pará-lo e executar novamente o comando.
fonte
Desative o pacote js e aumente a memória. Isso deve consertar. Corrigi o meu desativando o pacote js.
obrigado
fonte
edite o arquivo php.ini e aumente o valor memory_limit.
resolverá esse problema.
fonte
> mmap () falhou: [12] Não é possível alocar memória
Atualize a memória no servidor e exija '4G' Alterar 4 GB de RAM [tente alterar o tipo de servidor ou adicione mais memória]
2 arquivos que precisamos editar
no comando
e edite
"memory_limit 756M”
para4G
Php ini no php 7.0
memory_limit = 128M a 4G
#AWS #AMAZONLINUX # MAGENTO2 # PHP7.0
fonte
.htaccess
não afeta,composer
afinal, como isso não é executado em um servidor da web