Po prostu nie mogę tego rozwiązać.
Jestem na podstawowym planie Linode 1G RAM. Próbuję zainstalować pakiet przez Composer, ale mi na to nie pozwala. Mój limit pamięci jest ustawiony na „-1” w PHP.ini
Czy jest coś jeszcze, co mogę zrobić, aby to zainstalować?
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
źródło
źródło
Wygląda na to, że zabrakło pamięci wymiany, spróbuj tego
jak wspomniał @ BlackBurn027 w komentarzach poniżej, to rozwiązanie zostało opisane tutaj
źródło
Jako przewodnik rozwiązywania problemów kompozytora tutaj To może się dziać, ponieważ VPS zabraknie pamięci i ma swap włączony.
Aby włączyć zamianę, możesz użyć na przykład:
Lub jeśli powyższe nie zadziałało, możesz spróbować utworzyć plik wymiany
źródło
Zmierzyłem się z tym samym problemem. Korzystam z darmowej mikroinstancji AWS, która ma mniej pamięci. Zawsze próbuję jednej z poniższych opcji i zawsze działa (przed tym wszystkim sprawdź, czy masz zainstalowaną najnowszą wersję kompozytora)
lub usuń zawartość folderu dostawcy i wypróbuj aktualizację kompozytora.
Druga opcja próbuje zaktualizować wszystkie komponenty, jeśli nie ma aktualizacji, pobiera pakiet z pamięci podręcznej, w przeciwnym razie odbiera z dyst
Uwaga: Zmień limit pamięci zgodnie z własnym wyborem.
lub
Utwórz partycję wymiany i spróbuj. Partycja wymiany to część dysku twardego, której Linux używa jako pamięci wirtualnej, gdy zabraknie pamięci fizycznej. Jest podobny do pliku wymiany systemu Windows, tylko zamiast używać rzeczywistego pliku, linux używa zamiast tego partycji na dysku twardym.
Mam nadzieję że to pomoże
źródło
sudo php -dmemory_limit=750M composer.phar update
pojawił się ten błąd,Could not open input file: composer.phar
proszę o pomocŁatwo, wpisz następujące polecenia:
rm -rf vendor/
rm -rf composer.lock
php composer install --prefer-dist
Powinien działać na komputerach z małą ilością pamięci
źródło
Oto kroki umożliwiające rozwiązanie problemu: (użyto natychmiastowej, szybkiej metody alokacji plików SWAP)
Konfiguracja SWAP serwera (Ubuntu 16.04 SWAP do naprawy błędów braku pamięci)
Sprawdź, czy masz już swap, pamięć i rozmiar dysku:
Utwórz plik wymiany: (zmień 1G na 4G, jeśli chcesz 4 GB pamięci SWAP)
Sprawdź plik wymiany:
Przypisz plik wymiany:
Sprawdź, czy wymiana jest OK, pamięć i rozmiar dysku:
Dołącz plik wymiany przy ponownym uruchomieniu systemu:
Dostosuj ustawienia pliku wymiany:
Priorytet pliku SWAP: (0-100% => 0: nie wymieniaj, 100: włącz SWAP i zwolnij pamięć RAM)
Usuń i-węzeł z pamięci podręcznej: (100: system zbyt szybko usuwa informacje i-węzła z pamięci podręcznej)
źródło
sudo nano /etc/sysctl.conf
, więc pomijam to, ponownie uruchamiam Nginx, a następnie robięcomposer install
(wcześniej usunąłem katalog dostawcy) i działa. Dzięki!Miałem ten sam problem z włóczęgą. Naprawiłem to, dodając więcej pamięci.
źródło
vb.customize ...
możesz to zrobićvb.memory = 1024
.Próbować
po prostu zwiększa pamięć wymiany
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
źródło
Spróbuj tego:
źródło
Oto obejście, które znalazłem, które działa dla mnie za każdym razem:
źródło
Próbowałem, po prostu usuwając folder dostawcy i plik composer.lock , a następnie uruchamiam polecenie
composer clear-cache
i wtedycomposer install
. Więc działa bez żadnego błędu.źródło
możesz skorzystać z poniższych, aby sprawdzić swoją wolną (zamienić) pamięć
Aby włączyć zamianę, możesz użyć na przykład:
źródło
free -m
i zauważyłem, że nie mam pamięci, nawet w zamianie .. potem zrobiłemsudo reboot
i zadziałałoWydaje się, że jest to powtarzający się problem z 1 GB i mniejszymi instancjami serwera. Oprócz próby zamknięcia procesów i zmiany ustawień wymiany, możesz zainstalować na komputerze lokalnym i przesłać.
źródło
Czasami samoczynnie aktualizując kompozytor rozwiązuje problem
Twoje zdrowie
źródło
composer self-update
, jeśli ktoś niezbyt zaznajomiony z kompozytorem ma przeczytać tę odpowiedź.Spróbuj tego:
Ta praca dla mnie na Centos 6
źródło
Zwiększyłem PHP
memory_limit
z domyślnych 128M do 512M i zrestartowałem serwer. To rozwiązało problem.źródło
W większości przypadków wpadam w tę sytuację, więc zwykle postępowałem zgodnie z krokiem ustawiania pamięci wymiany.
Ale teraz znalazłem prostą alternatywną sztuczkę, która zadziałała dla mnie.
Uruchom
composer update --no-dev
inne niżcomposer update
źródło
Rozwiązałem ten sam problem w Vagrant. Zwiększyłem wartość memory_limit i usunąłem pamięć podręczną kompozytora: sudo rm -R ~ / .composer i wreszcie vagrant reload.
źródło
mam ten sam problem z aktualizacją php composer.phar na moim hostingu 512 MB.
rozwiązany za pomocą php composer.phar install
źródło
Dokonaj zamiany i ponownie uruchom polecenie Composer. Mam nadzieję, że to zadziała.
źródło
W moim przypadku wypróbowałem wszystko, co zostało wymienione powyżej. Używałem Laravela i Vagranta z 4 GB pamięci i wymianą, z limitem pamięci ustawionym na -1. Usunąłem dostawcę / i wypróbowałem inne wersje PHP. Wreszcie udało mi się to działać, biegając
Następnie instalacja kompozytora działała ponownie jak zwykle.
źródło
Podobny problem miałem na najtańszym serwerze (512MB RAM) hostowanym przez DigitalOcean , a na tym samym serwerze korzystałem również z Jenkins CI. Po zatrzymaniu instancji Jenkinsa polecenie instalacji kompozytora zadziałało (cóż, do pewnego momentu nie udało się to z powodu braku rozszerzenia mcrypt, poza tym, że zostało już zainstalowane!).
Może jeśli na serwerze działa inna aplikacja, może warto spróbować ją zatrzymać i ponownie uruchomić polecenie.
źródło
Wyłącz pakietowanie js i zwiększ pamięć. To powinno to naprawić. Naprawiłem mój, wyłączając pakietowanie js.
Dzięki
źródło
edytuj plik php.ini i zwiększ wartość memory_limit.
rozwiąże ten problem.
źródło
> mmap () nie powiodło się: [12] Nie można przydzielić pamięci
Zaktualizuj pamięć na serwerze i wymagaj „4G” Zmień 4 GB pamięci RAM [spróbuj zmienić typ serwera lub dodaj więcej pamięci RAM]
2 Pliki Musimy edytować
na komendę
i edytuj
"memory_limit 756M”
w4G
PHP ini na php 7.0
memory_limit = 128 M do 4G
#AWS #AMAZONLINUX # MAGENTO2 # PHP7.0
źródło
.htaccess
nie ma wpływucomposer
, ponieważ nie jest to uruchamiane przez serwer WWW