Komunikat „Killed” zwykle oznacza, że proces zużywał zbyt dużo pamięci, więc jeśli to możliwe, możesz po prostu dodać więcej pamięci do systemu. W momencie pisania tej odpowiedzi musiałem zwiększyć pamięć mojej maszyny wirtualnej do co najmniej 768 MB, aby uzyskaćcomposer update
w niektórych sytuacjach do pracy.
Jeśli jednak robisz to na serwerze rzeczywistym, composer update
w ogóle nie powinieneś używać . Zamiast tego powinieneś zrobić:
- Uruchom
composer update
w środowisku lokalnym (na przykład bezpośrednio na fizycznym laptopie / komputerze stacjonarnym lub w kontenerze / maszynie wirtualnej platformy docker uruchomionej na laptopie / komputerze stacjonarnym), w którym ograniczenia pamięci nie powinny być tak poważne.
- Prześlij lub
git push
plik composer.lock.
- Uruchom
composer install
na serwerze rzeczywistym.
composer install
będzie wtedy czytać z pliku .lock, pobierając za każdym razem dokładnie te same wersje, zamiast znajdować najnowsze wersje każdego pakietu. Dzięki temu Twoja aplikacja jest mniej podatna na awarie, a kompozytor zużywa mniej pamięci.
Przeczytaj więcej tutaj: https://getcomposer.org/doc/01-basic-usage.md#installing-with-composer-lock
Alternatywnie możesz przesłać cały vendor
katalog na serwer, omijając composer install
w ogóle potrzebę uruchamiania , ale wtedy powinieneś uruchomić composer dump-autoload --optimize
.
Jeśli tak jak ja używasz jakiejś mikro maszyny wirtualnej, której brakuje pamięci, utworzenie pliku wymiany załatwia sprawę:
Jak wskazało kilka komentarzy, nie zapomnij dodać sudo jeśli nie pracujesz jako root.
przy okazji, możesz wybrać inną lokalizację / nazwę pliku / rozmiar pliku.
/var
prawdopodobnie nie jest najlepszym miejscem, ale nie wiem, które to miejsce byłoby i rzadko się tym przejmuje, ponieważ małe serwery są głównie używane do celów testowych.źródło
sudo
- musiałem użyć uprawnień roota, aby uruchomić te polecenia.swapon: swapfile: swapon failed: Operation not permitted
, dlaczego?Niestety, kompozytor wymaga dużej ilości pamięci RAM i dużej mocy obliczeniowej. Oto kilka rzeczy, które zrobiłem i które razem sprawiły, że proces był znośny. To było na moim chmurze env.
service mysql stop
(zabij swoje usługi DB / mem-hog, aby zwolnić trochę pamięci RAM - nie zapomnij uruchomić go ponownie!)top
aby obserwować zużycie pamięci / wymiany, aż do zakończenia procesu.composer.phar update --prefer-dist -vvv
(szczegółowe wyjście [nadal zawiesza się w niektórych momentach podczas pracy] i użyj plików zip w dystrybucji). Może spróbuj--dry-run
też?źródło
top
przezhtop
, bardziej wygodne.Poprawka DigitalOcean niewymagająca dodatkowej pamięci - aktywacja wymiany, oto przykład dla 1GB:
w terminalu uruchomić poniżej
Powyższe rozwiązanie będzie działać do następnego restartu, po czym wymiana będzie musiała zostać ponownie aktywowana. Aby zachować go między ponownymi uruchomieniami, dodaj plik wymiany do fstab:
otwórz powyższy plik dodaj dodaj poniższą linię do pliku
teraz zrestartuj serwer. Kompozytor wymaga działa dobrze.
źródło
Uruchom
composer self-update
icomposer clearcache
usuń dostawcę i composer.lock, zrestartuj środowisko lokalne, a następnie uruchomphp -d memory_limit=-1 /usr/local/bin/composer install
źródło
Otrzymałem ten błąd, gdy uruchomiłem
composer install
wewnątrz mojego kontenera PHP DOCKER. Problem dotyczy pamięci. Rozwiązany przez zwiększenie pamięci SWAP w DOCKER PREFERENCES z 512 MB do 1,5 GBźródło
Zwiększ limit pamięci dla kompozytora
Może być konieczne ponowne uruchomienie po tej zmianie
źródło
Otrzymuję ten problem spowodowany pakietem, który nie aktualizuje się poprawnie za pomocą symboli wieloznacznych, używam bezpośrednio ostatniej wersji i wreszcie działa.
"l3 / cas-bundle": "~ 1.0" -------> "l3 / cas-bundle": "1.1.13"
źródło
Jeśli używasz dockera, możesz użyć COMPOSER_PROCESS_TIMEOUT
źródło
Oto jak udało mi się zainstalować pakiet maatwebsite \ excel z programu composer w Laravel Framework:
composer update
z lokalnego wiersza poleceń (następnie czekam, aż zakończy się cały proces instalacji).composer install
na serwerze zdalnym (następnie poczekaj, aż cały proces się zakończy).źródło
źródło
Rozwiązany na Laravel / Homestead (Vagrant Windows)
Edytuj
Homestead.yaml
i zwiększ pamięć z 2048 do 4096włóczęga się
vagrant ssh
Zainstaluj Symfony z tą linią w wybranym folderze (musi być bez plików)
źródło
Możesz spróbować ustawić
preferred-install
to"dist"
w konfiguracji Composer.źródło
Otrzymałem ten błąd w lokalnym środowisku Dockera. Rozwiązałem to, po prostu ponownie uruchamiając Dockera.
źródło