Ich habe ein Problem, ich habe versucht, ein neues Paket für mein Laravel 4-Projekt zu installieren ... Aber wenn ich php composer.phar update
starte, bekomme ich Folgendes:
Loading composer repositories with package information
Updating dependencies (including require-dev)
Killed
Ich habe im Internet nach dem Problem gesucht und gesehen, dass der Speicher das Problem ist. Ich glaube, ich habe nicht genügend RAM verfügbar. Ich habe dies überprüft. Ich habe ungefähr 411 MB frei brauche mehr RAM? Kann mir bitte jemand weiterhelfen?
Vielen Dank
Die Meldung "Killed" bedeutet normalerweise, dass Ihr Prozess zu viel Arbeitsspeicher beansprucht, sodass Sie möglicherweise einfach mehr Arbeitsspeicher hinzufügen müssen, wenn dies möglich ist. Zum Zeitpunkt des Schreibens dieser Antwort musste ich den Speicher meiner virtuellen Maschine auf mindestens 768 MB erhöhen, damit composer update
in einigen Situationen zum Laufen gebracht wird.
Wenn Sie dies jedoch auf einem Live-Server durchführen, sollten Sie composer update
überhaupt nicht verwenden. Was Sie stattdessen tun sollten, ist:
composer update
in einer lokalen Umgebung (entweder Ihrer lokalen physischen Maschine oder einer virtuellen Entwicklungsmaschine)git Push
die Datei composer.lock hochcomposer install
auf dem Live-Server auscomposer install
liest dann aus der .lock-Datei und ruft jedes Mal die gleichen Versionen ab, anstatt die neuesten Versionen jedes Pakets zu finden. Dadurch ist es weniger wahrscheinlich, dass Ihre App beschädigt wird, und der Composer benötigt weniger Speicherplatz.
Lesen Sie hier mehr: https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file
Wenn Sie wie ich ein Micro VM verwenden, dem kein Arbeitsspeicher zur Verfügung steht, können Sie eine Auslagerungsdatei erstellen:
free -m
mkdir -p /var/_swap_
cd /var/_swap_
#Here, 1M * 2000 ~= 2GB of swap memory
dd if=/dev/zero of=swapfile bs=1M count=2000
mkswap swapfile
swapon swapfile
chmod 600 swapfile
echo "/var/_swap_/swapfile none swap sw 0 0" >> /etc/fstab
#cat /proc/meminfo
free -m
Übrigens, Sie können gerne einen anderen Ort/Dateinamen/eine andere Größe für die Datei auswählen./var
ist wahrscheinlich nicht der beste Ort, aber ich weiß nicht, welcher Ort sein würde.
Bitte überprüfen Sie dieses Tutorial, weil Ihr Hosting nicht mehr ausreicht
Leider benötigt der Composer viel RAM und Verarbeitungsleistung. Hier sind ein paar Dinge, die ich gemacht habe, was den Prozess erträglich machte. Dies war auf meinem Cloud-Laufstall env.
service mysql stop
(beenden Sie Ihre DB/mem-hog-Dienste, um einige RAM freizugeben - vergessen Sie nicht, es erneut zu starten!) top
ausgeführt wird, um den Speicher-/Auslagerungsverbrauch zu überwachen, bis der Prozess abgeschlossen ist.composer.phar update --prefer-dist -vvv
(verbose Ausgabe [bleibt beim Arbeiten an einigen Stellen hängen] und Distro-Zip-Dateien verwenden). Vielleicht einen --dry-run
auch versuchen? Sie können so etwas versuchen
php -d memory_limit=4G /usr/local/bin/composer update
DigitalOcean-Update, für das kein zusätzlicher Speicher erforderlich ist - der Swap wird aktiviert.
im Terminallauf unten
/bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024
/sbin/mkswap /var/swap.1
Sudo /sbin/swapon /var/swap.1
Die obige Lösung funktioniert bis zum nächsten Neustart, danach müsste der Swap erneut aktiviert werden. Um es zwischen den Neustarts zu behalten, fügen Sie die Auslagerungsdatei zu fstab hinzu:
Sudo nano /etc/fstab
Öffnen Sie die obige Datei, und fügen Sie der Datei unten eine Zeile hinzu
/var/swap.1 swap swap sw 0 0
starten Sie jetzt den Server neu. Komponist erfordert Werke gut.
Sie können versuchen, preferred-install
auf "dist"
in der Composer-Konfiguration der CLI WP einzustellen - normalerweise bei ~/.wp-cli/packages/composer.json
.
php -d memory_limit = 5G composer.phar update
Auf Laravel/Homestead gelöst (Vagrant Windows)
1) Bearbeiten Sie Homestead.yaml und erhöhen Sie den Speicher von 2048 auf 4096
2) Vagabund
3) Landstreicher ssh
4) Installieren Sie Symfony mit dieser Zeile in dem von Ihnen ausgewählten Ordner (muss ohne Dateien sein).
COMPOSER_MEMORY_LIMIT=-1 composer create-project symfony/website-skeleton . -s dev
Führen Sie composer self-update
und composer clearcache
Remove Vendor und Composer aus. Sperren Sie den Neustart Ihrer lokalen Umgebung und führen Sie dann php -d memory_limit=-1 /usr/local/bin/composer install
aus.