Composer: ErrorException: proc_open (): fork gagal - Tidak dapat mengalokasikan memori di phar

Dibuat pada 26 Jul 2012  ·  81Komentar  ·  Sumber: composer/composer

ErrorException: proc_open (): fork gagal - Tidak dapat mengalokasikan memori di phar: ///var/www/workspace/MyProject/build/composer/composer.phar/vendor/symfony/console/Symfony/Component/Console/Application.php di baris 943

Tumpukan Panggilan:
0.0523 765208 1. {utama} () /var/www/workspace/MyProject/build/composer/composer.phar WindowsFAQ.ru
0.0528 763216 2. memerlukan ('phar: ///var/www/workspace/MyProject/build/composer/composer.phar/bin/composer') /var/www/workspace/MyProject/build/composer/composer.phar: 15
0,0830 3504584 3. Komposer \ Konsol \ Aplikasi-> run () phar: ///var/www/workspace/MyProject/build/composer/composer.phar/bin/composer: 13
0,0865 3865984 4. Symfony \ Component \ Console \ Application-> run () phar: ///var/www/workspace/MyProject/build/composer/composer.phar/src/Composer/Console/Application.php: 66
31.9725 246198552 5. Symfony \ Component \ Console \ Application-> renderException () phar: ///var/www/workspace/MyProject/build/composer/composer.phar/vendor/symfony/console/Symfony/Component/Console/Application .php: 113
31.9726 246199624 6. Symfony \ Component \ Console \ Application-> getTerminalWidth () phar: ///var/www/workspace/MyProject/build/composer/composer.phar/vendor/symfony/console/Symfony/Component/Console/Application .php: 771
31.9726 246199784 7. Symfony \ Component \ Console \ Application-> getSttyColumns () phar: ///var/www/workspace/MyProject/build/composer/composer.phar/vendor/symfony/console/Symfony/Component/Console/Application . php: 848
31.9727 246202984 8. proc_open () phar: ///var/www/workspace/MyProject/build/composer/composer.phar/vendor/symfony/console/Symfony/Component/Console/Application. php: 943
31.9728 246204736 9. Komposer \ Util \ ErrorHandler :: handle () phar: ///var/www/workspace/MyProject/build/composer/composer.phar/src/Composer/Util/ErrorHandler. php: 0

Bug

Komentar yang paling membantu

Saya kira itu bukan komposer itu sendiri, tetapi bagaimanapun: Instance mikro di ec2 tidak memiliki memori swap _any_ (secara default) dan OS menjalankan proses, jika kehabisan memori. Solusi yang lebih baik daripada mengupgrade ke yang kecil (karena biayanya lebih mahal) adalah membuat swap berbasis file (setidaknya sementara)

Sebagai contoh.

# /bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024
# /sbin/mkswap /var/swap.1
# /sbin/swapon /var/swap.1

613M sangat kurang dan perlu diingat, bahwa tidak hanya PHP yang menggunakannya. Saya tidak berpikir orang bisa menyalahkan komposer untuk itu. Bisakah seseorang menutup masalah ini?

Semua 81 komentar

Untuk mengatasi masalah ini saya harus memastikan ada lebih dari 1 gig memori yang tersedia.

Saya juga mengalami masalah ini tetapi meningkatkan memory_limit PHP memecahkan masalah.

Sama disini:

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:943
Stack trace:
#0 [internal function]: Composer\Util\ErrorHandler::handle(2, 'proc_open(): fo...', 'phar:///usr/loc...', 943, Array)
#1 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php(943): proc_open('stty -a | grep ...', Array, NULL, NULL, NULL, Array)
#2 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php(848): Symfony\Component\Console\Application->getSttyColumns()
#3 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php(771): Symfony\Component\Console\Application->getTerminalWidth()
#4 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php(113): Symfony\Component\Console\Application->renderException(Object(ErrorException), Object(Symfo in phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php on line 943

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 on line 943

ErrorException: proc_open(): fork failed - Cannot allocate memory in phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php on line 943

Call Stack:
    0.0001     620632   1. {main}() /usr/local/bin/composer:0
    0.0032     727952   2. require('phar:///usr/local/bin/composer/bin/composer') /usr/local/bin/composer:15
    0.0187    3168240   3. Composer\Console\Application->run() phar:///usr/local/bin/composer/bin/composer:13
    0.0211    3485008   4. Symfony\Component\Console\Application->run() phar:///usr/local/bin/composer/src/Composer/Console/Application.php:66
   13.2099  135622120   5. Symfony\Component\Console\Application->renderException() phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php:113
   13.2099  135622968   6. Symfony\Component\Console\Application->getTerminalWidth() phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php:771
   13.2099  135623064   7. Symfony\Component\Console\Application->getSttyColumns() phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php:848
   13.2099  135625208   8. proc_open() phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php:943
   13.2100  135626416   9. Composer\Util\ErrorHandler::handle() phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php:943

Info lebih lanjut tentang sistem:

php -v
PHP 5.3.10 (cli) (built: Feb 20 2012 16:56:36) 
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies
    with Xdebug v2.2.1, Copyright (c) 2002-2012, by Derick Rethans

Mendapat kesalahan yang sama dua kali, tetapi dapat mengatakan: Ini berfungsi sekitar satu jam yang lalu (tanpa perubahan apa pun pada pengaturan) dan sekarang di yang ketiga coba berfungsi lagi (tanpa perubahan sama sekali).

$ php -v
PHP 5.4.4-4~precise+1 (cli) (built: Aug  6 2012 13:01:46) 
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2012 Zend Technologies

Memperbarui:

Baiklah lupakan itu. Saya lupa mengaktifkan swap lagi ... Mesin _really_ kehabisan memori ...

Memiliki masalah yang sama saat mencoba melakukan penerapan ke instans Mikro Amazon AWS EC2. Instance ini hanya memiliki total memori 613MB sehingga komposer gagal mengalokasikan memori yang cukup untuk menjalankan pembaruan. Mengupgrade ke instance Kecil dengan total memori 1,7GB menghilangkan masalah ini.

Saya memiliki masalah yang sama .... apakah komposer benar-benar membutuhkan begitu banyak memori? :-HAI

Saya kira itu bukan komposer itu sendiri, tetapi bagaimanapun: Instance mikro di ec2 tidak memiliki memori swap _any_ (secara default) dan OS menjalankan proses, jika kehabisan memori. Solusi yang lebih baik daripada mengupgrade ke yang kecil (karena biayanya lebih mahal) adalah membuat swap berbasis file (setidaknya sementara)

Sebagai contoh.

# /bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024
# /sbin/mkswap /var/swap.1
# /sbin/swapon /var/swap.1

613M sangat kurang dan perlu diingat, bahwa tidak hanya PHP yang menggunakannya. Saya tidak berpikir orang bisa menyalahkan komposer untuk itu. Bisakah seseorang menutup masalah ini?

Orang yang menggunakan contoh mikro seharusnya tidak mengalami masalah lagi setelah memperbarui komposer dan memperbarui file kunci Anda ke format baru, lihat # 1109. Jika Anda memiliki masalah memori dengan hal-hal selain pemasangan, lihat # 600.

Saya mengalami masalah ini lagi. Ini Dump saya:

PHP Fatal error:  Uncaught exception 'ErrorException' with message 'proc_open(): fork failed - Cannot allocate memory' in phar:///vagrant/www/api-v3/composer.phar/vendor/symfony/console/Symfony/Component/Console/Application.php:969
Stack trace:
#0 [internal function]: Composer\Util\ErrorHandler::handle(2, 'proc_open(): fo...', 'phar:///vagrant...', 969, Array)
#1 phar:///vagrant/www/api-v3/composer.phar/vendor/symfony/console/Symfony/Component/Console/Application.php(969): proc_open('stty -a | grep ...', Array, NULL, NULL, NULL, Array)
#2 phar:///vagrant/www/api-v3/composer.phar/vendor/symfony/console/Symfony/Component/Console/Application.php(874): Symfony\Component\Console\Application->getSttyColumns()
#3 phar:///vagrant/www/api-v3/composer.phar/vendor/symfony/console/Symfony/Component/Console/Application.php(798): Symfony\Component\Console\Application->getTerminalWidth()
#4 phar:///vagrant/www/api-v3/composer.phar/vendor/symfony/console/Symfony/Component/Console/Application.php(113): Symfony\Component\Console\Application->re in phar:///vagrant/www/api-v3/composer.phar/vendor/symfony/console/Symfony/Component/Console/Application.php on line 969

Melakukan Dry-Run dengan Profiling akan mengembalikan info penggunaan mem berikut:

Memory usage: 25.95MB (peak: 67.15MB), time: 9.21s

Hai,

Coba tebak: Apakah Anda menjalankan ini di AWS-micro? Apakah Anda memiliki swap
diaktifkan?

Salam,
Sebastian

2012/12/20 Dan Horrigan [email protected]

Saya mengalami masalah ini lagi. Ini Dump saya:

Kesalahan fatal PHP: Pengecualian yang tidak tertangkap 'ErrorException' dengan pesan 'proc_open (): garpu gagal - Tidak dapat mengalokasikan memori' di phar: ///vagrant/www/api-v3/composer.phar/vendor/symfony/console/Symfony/Component /Aplikasi konsol. php: 969
Jejak tumpukan:

0 [fungsi internal]: Komposer \ Util \ ErrorHandler :: handle (2, 'proc_open (): fo ...', 'phar: /// gelandangan ...', 969, Array)

1 phar: ///vagrant/www/api-v3/composer.phar/vendor/symfony/console/Symfony/Component/Console/Application.php (969): proc_open ('stty -a | grep ...', Array, NULL, NULL, NULL, Array)

2 phar: ///vagrant/www/api-v3/composer.phar/vendor/symfony/console/Symfony/Component/Console/Application.php (874): Symfony \ Component \ Console \ Application-> getSttyColumns ()

3 phar: ///vagrant/www/api-v3/composer.phar/vendor/symfony/console/Symfony/Component/Console/Application.php (798): Symfony \ Component \ Console \ Application-> getTerminalWidth ()

4 phar: ///vagrant/www/api-v3/composer.phar/vendor/symfony/console/Symfony/Component/Console/Application.php (113): Symfony \ Component \ Console \ Application-> ada di phar: ///vagrant/www/api-v3/composer.phar/vendor/symfony/console/Symfony/Component/Console/Application.php di baris 969

Melakukan Dry-Run dengan Profiling akan mengembalikan info penggunaan mem berikut:

Penggunaan memori: 25.95MB (puncak: 67.15MB), waktu: 9.21s

-
Balas email ini secara langsung atau lihat di Gi tHubhttps: //github.com/composer/composer/issues/945#issuecomment -11587234.

github.com/KingCrunch

@dhorrigan aduh menurut jejak tumpukan, sepertinya kesalahan fatal dipicu saat membuat pengecualian (karena itu menggunakan proc_open untuk memeriksa lebar terminal Anda). Sepertinya itu bukan batas memori php melainkan memori mesin yang habis, jadi saya sarankan untuk membersihkan hal-hal lain, dan menjalankannya dengan menginstal daripada memperbarui jika Anda dapat menjalankan pembaruan di tempat lain yang memiliki lebih banyak memori. menginstal dari file kunci menggunakan sedikit memori.

Saya menjalankan ini di kotak Vagrant, dan ada cukup banyak yang berjalan di atasnya, tetapi ini adalah pertama kalinya saya melihatnya. Saya akan mencoba membangun kembali kotak dengan lebih banyak memori dan melihat apa yang terjadi. Saya akan menindaklanjuti.

Sejujurnya 67MB tidak terlalu besar. Saya dapat melihat bagaimana masalahnya jika gagal, tetapi di zaman sekarang ini, beberapa ratus MB memori puncak tidak terlalu banyak untuk diminta;)

Ya, ditemukan masalahnya, VM hanya memiliki 6MB mem tersedia (dari 512MB) jadi, ya. Haha, saya meningkatkannya untuk memiliki memori 1GB. Seharusnya sudah diperiksa dulu. Lanjut.

@Seldaek Instans mikro memiliki 590MB dan secara default tidak ada swap. Untuk bermain-main, ini berfungsi dengan baik, tetapi segera setelah beberapa aplikasi membutuhkan sedikit lebih banyak, itu benar-benar rusak. Jadi seperti yang disebutkan sebelumnya: Membuat swap menangkap ini :) Hanya membutuhkan 10, atau 20 MB lebih.

https://github.com/composer/composer/issues/945#issuecomment -8552757

@Inggris benar. Baru saja menambahkan swap ke instans mikro EC2 saya seperti yang dijelaskan di sini .

Sekarang memperbarui dependensi berfungsi seperti pesona.

@andremaha Sempurna! Terima kasih!! :)

Saya juga mendapatkan masalah ini. 1GB Vagrant pada Macbook Air 4GB. Terjadi bahkan saat saya membatasi pembaruan ke vendor tertentu.

Kesalahan fatal PHP: Pengecualian yang tidak tertangkap 'ErrorException' dengan pesan 'proc_open (): garpu gagal - Tidak dapat mengalokasikan memori' di phar: /// usr / local / bin / composer / vendor / symfony / console / Symfony / Component / Console / Application . php: 1033
Jejak tumpukan:

0 [fungsi internal]: Komposer \ Util \ ErrorHandler :: handle (2, 'proc_open (): fo ...', 'phar: /// usr / loc ...', 1033, Array)

1 phar: ///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php (1033): proc_open ('stty -a | grep ...', Array, NULL, NULL, NULL, Array)

2 phar: ///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php (911): Symfony \ Component \ Console \ Application-> getSttyColumns ()

3 phar: ///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php (876): Symfony \ Component \ Console \ Application-> getTerminalDimensions ()

4 phar: ///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php (810): Symfony \ Component \ Console \ Application-> getTerminalWidth ()

Bisa mengatasinya dengan gelandangan berhenti && gelandangan && gelandangan ssh, lalu lari lagi.

Penggunaan memori: 102.39MB (puncak: 427.97MB), waktu: 104.79s

@adamsme terima kasih! Saya menggunakan solusi Anda untuk contoh DO saya

@adamsmeat - Saya dapat mengonfirmasi pada mesin Ubuntu 12.04 512MB Digital Ocean yang dimuat stok bahwa solusi Anda adalah yang dibutuhkan. Symfony2 sekarang terinstal dan bekerja sesuai keinginan.

@adamsmeat yang menyelamatkan hidup saya, baru saja menambahkan ruang swap 512MB pada contoh mikro EC2 saya dan masalahnya teratasi.

Saya juga mengalami masalah ini. Itu terjadi di lingkungan yang menggunakan kotak gelandangan. Memori awal adalah 512M. Masalahnya terpecahkan setelah meningkat menjadi 2048G.

mengalami masalah ini menggunakan potongan Digital Ocean 512MB ... harus https://github.com/composer/composer/issues/945#issuecomment -8552757

sama di sini @ prodev42

Saya mencoba menyalin composer.lock ke server langsung dan berfungsi. dengan perintah

php composer.phar --verbose install

@paparts Sepertinya Anda tidak membuat versi composer.lock ? Sebagai aturan praktis: Untuk aplikasi yang dibuat versi, untuk perpustakaan, jangan. Anda tidak boleh menjalankan update pada sistem langsung, karena kemungkinan besar, cepat atau lambat sebuah paket masuk, akan merusak aplikasi Anda, tanpa Anda mengujinya secara lokal. composer.lock dan composer.phar install memastikan, bahwa paket-paket dalam versi itu diinstal, bahwa Anda telah mengembangkan aplikasi Anda.

Saya tidak memperhatikan bahwa kerangka kerja yang saya gunakan telah mencantumkan composer.lock pada daftar abaikan. Terima kasih telah menunjukkannya.

Mengalami masalah hari ini dengan contoh mikro EC2. Meningkatkan memory_limit PHP menjadi 512M memperbaikinya.

apakah itu hal yang baik untuk dilakukan? Dalam memori samudra digital hanya 512mb & menempatkan PHP untuk menghabiskan memori seperti itu mungkin akan membuat VM Anda sendiri.

oh, tidak sama sekali. Tidak perlu disebutkan itu bukan server produksi.

Saya menginstal paket yang membutuhkan symfony / event-dispatcher, jadi sekarang saya tidak dapat menginstal satu paket lagi karena kesalahan di atas: S

Dapatkan ini ketika saya mengaktifkan opcache.enable_cli di php cli ini

@ younes0 Itu deskripsi yang cukup kabur. Apakah Anda membaca keseluruhan diskusi di sini? Biasanya itu karena Anda kehabisan memori tanpa mengaktifkan swap, biasanya dalam instance cloud yang cukup kecil, atau VM.

@KingCrunch dalam kasus saya, itu tidak terkait dengan memori yang tidak mencukupi, saya mendapat kesalahan yang dijelaskan oleh @yooper ketika saya mencoba menginstal paket komposer dengan opsi opcache.enable_cli php disetel ke On (VM atau tidak)

Kesalahan yang sama.

Saya memiliki tetesan digitalocean dengan RAM 1Gb.

Ketika saya mulai php composer.phar update itu memakan semua RAM yang tersedia kemudian membuat pengecualian.

Dalam cli/php.ini saya, saya memiliki memory_limit = -1 .

Jika solusinya adalah meningkatkan ke tetesan dengan RAM yang lebih besar hanya untuk komposer, saya akan melakukan php composer.phar update pada mesin lokal saya dan kemudian mengunggah file ke vps saya.

Cukup sertakan composer.lock

@paparts Terima kasih, berhasil.

Saya melakukan php composer.phar update di mesin lokal kemudian mengunggah composer.lock ke VPS dan melakukan php composer.phar install

@moldcraft Solusi lain dijelaskan di suatu tempat di atas: Buat saja memori swap, yang cukup lambat, tetapi setidaknya itu mencegah Anda dari kesalahan OOM.

@KingCrunch Solusi lainnya dijelaskan di suatu tempat di atas

Alangkah baiknya jika @yooper akan memperbarui deskripsi masalah dengan solusi yang ditemukan

ProTip: trik swap juga berfungsi untuk VM VirtualBox lokal yang berjalan dengan Vagrant.

Saya mencoba memasukkan menggunakan ajax, tetapi tidak berhasil, kesalahan adalah: pengecualian tidak tertangkap: kehabisan memori ..
ide apapun untuk ini ..

@sivagurupr Saya tidak tahu, apa yang Anda bicarakan, tetapi saya merasa, itu tidak terkait dengan masalah ini. Komposer (CLI) tidak memiliki kemampuan ajax: bingung: Namun, di akhir dan setelah membaca komentar "kehabisan memori" harus menjelaskan sendiri: wink:

Ada kesalahan dalam kode ini ....

Pada Kamis, 12 Maret 2015 jam 16.08, Sebastian Krebs [email protected]
menulis:

@sivagurupr https://github.com/sivagurupr Saya tidak tahu, siapa Anda
berbicara tentang, tetapi saya merasa, itu tidak terkait dengan masalah ini.
Komposer (CLI) tidak memiliki kemampuan ajax [image:: confused:]
Namun, di akhir dan setelah membaca komentar "keluar dari memori" harus
menjelaskan diri sendiri [image:: wink:]

-
Balas email ini secara langsung atau lihat di GitHub
https://github.com/composer/composer/issues/945#issuecomment -78456750.

Saya mengalami masalah ini saat menginstal http://github.com/sabre/xml di mesin Vagrant. Namun saya berhasil memperbaikinya dengan mengaktifkan swapping menggunakan contoh di atas.

Saya memiliki kesalahan yang sama tetapi dengan contoh besar: RAM 4gb dan swap 4gb. RAM gratis tidak pernah habis, apalagi RAM yang tersedia / cache, dan swap tidak tersentuh!

Ini pertama kalinya menjalankan pembaruan komposer di mesin baru ini, CentOS / CloudLinux 7.1.

Ada ide? Silahkan?

Saya mengalami kesalahan yang sama saat berjalan di Kotak Gelandangan saya. Saya memiliki 2gb ram ketika saya mendapat kesalahan. Saya memperpanjang ram menjadi 4gb dan itu berhasil. Tapi, tetap saja aneh karena membutuhkan begitu banyak ram.

Saya mengalami masalah ini lagi dan menambahkan composer.lock tidak berhasil. Tapi sebaliknya saya mencoba menggunakan ruang swap daripada menambah banyak memori. Artikel tentang digitalocean cukup bagus https://www.digitalocean.com/community/tutorials/how-to-configure-virtual-memory-swap-file-on-a-vps

Saya juga mengalami masalah:

PHP Warning:  proc_open(): fork failed - Cannot allocate memory in phar:///home/...../sculpin.phar/vendor/symfony/console/Symfony/Component/Console/Application.php on line 974

Memory_limit saya disetel ke -1

keluaran free :

             total       used       free     shared    buffers     cached
Mem:          1992       1331        660        122          8        217
-/+ buffers/cache:       1105        886
Swap:          255        237         18

Saya juga mengalami masalah ini tetapi meningkatkan memory_limit PHP memecahkan masalah.

saya juga

Mengalami masalah yang sama dengan memory_limit disetel ke -1. Satu-satunya hal yang berhasil untuk saya adalah memuat ulang mesin saya.

Cara Menambahkan Swap di Ubuntu 14.04
https://www.digitalocean.com/community/tutorials/how-to-add-swap-on-ubuntu-14-04

Artikel ini membantu saya untuk instance RAM 512M.

[Soal] Jika Anda menjalankan ini di mesin virtual, Hentikan mesin virtual baik dengan perintah vagrant halt atau dengan berhenti anggun.

Ubah ukuran RAM sesuai aplikasi Anda, Dalam kasus saya, saya memperbarui memori menjadi 1024MB.
standarnya adalah 256MB;

yaitu itu berhasil

Hentikan layanan httpd atau nginx mysql dan jalankan kembali

Jalankan komposer

Dan mulai ulang layanan

HI @ sergioermes

Ini hanya berfungsi, ketika nginx dan / atau mysql secara tidak sengaja menghabiskan banyak memori, komposer itu melewatkannya. Menghentikan layanan penting juga mungkin bukan merupakan pilihan dalam banyak kasus. Anda harus benar-benar berinvestasi dalam memori, baik secara fisik, atau dalam bentuk partisi / file swap. Semuanya sudah didokumentasikan di utas ini.

Saya mengerti, bagaimanapun itu adalah cara tanpa harus bertukar.
Tapi yang paling tepat adalah membuat swap. Tanpa keraguan.
Mengambil mencari menemukan "centos" referensi yang menarik.

https://www.digitalocean.com/community/tutorials/additional-recommended-steps-for-new-centos-7-servers

Saya yakin akan menambahkan utas ini.

Oh, saya menggunakan swap untuk menyelesaikannya, terima kasih

Anda dapat menghindari ini baik dengan meningkatkan ukuran memori dari file php.ini , yang merupakan opsi yang salah. Lebih baik hapus cache dan buat ulang paket.

Delete composer cache: `sudo rm -R ~/.composer`
Delete vendor folder: `sudo rm -R vendor`
Rebuild the vendor packages: `composer update`

Atau, saya dapat melakukannya dengan:

/ bin / dd if = / dev / zero of = / var / swap. 1 bs = 1M count = 1024
/ sbin / mkswap /var/swap.1
/ sbin / swapon /var/swap.1

@ mohitg-bs Saya rasa Anda mencampur sesuatu

  • Menghapus file tidak membebaskan RAM
  • Ini bukan tentang PHP memory_limit , tetapi memori (virtual) dari seluruh sistem. Tidak ada pengaturan ini, yang dapat membuat Anda RAM.

Saya memecahkan masalah yang sama di Vagrant.

Saya dengan mudah Meningkatkan Memori pada Mesin Virtual Vagrant http://www.josheaton.org/increase-memory-vagrant-virtual-machine/
kemudian, saya meningkatkan nilai memory_limit
dan hapus cache penyusun: sudo rm -R ~ / .composer
dan akhirnya kembali gelandangan .

Saya memiliki masalah yang sama pada Kotak Virtual yang dijalankan melalui Vagrant.
Diperbaiki dengan meningkatkan ram VBox.

Perubahan konfigurasi dari vb.memory = 512 menjadi vb.memory = 1024

Saya telah menambahkan memori swap dan itu memecahkan masalah saya.

Anda kehabisan memori swap, coba ini

/ bin / dd if = / dev / zero of = / var / swap. 1 bs = 1M count = 1024
/ sbin / mkswap /var/swap.1
/ sbin / swapon /var/swap.1

Untuk menambahkan file swap:

Tentukan ukuran file swap baru dalam megabyte dan kalikan dengan 1024 untuk menentukan jumlah blok. Misalnya, ukuran blok file swap 64 MB adalah 65536.
Pada prompt shell sebagai root, ketik perintah berikut dengan jumlah yang sama dengan ukuran blok yang diinginkan:
dd if = / dev / zero of = / swapfile bs = 1024 count = 65536
Siapkan file swap dengan perintah:
mkswap / swapfile
Untuk mengaktifkan file swap dengan segera tetapi tidak secara otomatis pada saat boot:
swapon / swapfile
Untuk mengaktifkannya pada saat boot, edit / etc / fstab untuk memasukkan entri berikut:
/ swapfile swap default swap 0 0
Saat berikutnya sistem melakukan boot, ini mengaktifkan file swap baru.

Setelah menambahkan file swap baru dan mengaktifkannya, verifikasi itu diaktifkan dengan melihat output dari perintah cat / proc / swaps atau gratis.

Terima kasih!

Tips - jika menambahkan swap tidak menyelesaikan komposer dari memori / tidak dapat mengalokasikan kesalahan:

  • Restart mesin Anda setelah menambahkan swap. Saya menemukan kesalahan komposer tidak hilang setelah menambahkan 8G swap. Tapi setelah restart itu berhasil.
  • Saya juga mematikan VM lain yang saya jalankan dan menutup Chrome dengan terlalu banyak tab

(Saya menggunakan komposer dalam lingkungan pengembangan di macOS X Sierra 10.12.4 dengan RAM 16 Gb).

Apakah ini sudah diselesaikan? Saya telah memperbarui Komposer secara global. Selain itu, saya membuat ruang swap 1GB per saran @ gillera235 . Saya tetap mengalami masalah yang sama. Apa yang dapat saya lakukan untuk memecahkan masalahnya?

Jika membantu, saya menggunakan instans mikro EC2 tingkat gratis.

dorong file composer.lock di server Anda dan lakukan

composer --verbose install

dengan cara ini tidak memakan banyak memori dan sangat cepat untuk menginstal paket yang diperbarui menurut versi di file composer.lock.

itu terjadi ketika Anda memiliki lebih sedikit memori
coba langkah-langkah ini
1) layanan mysql berhenti
2) Jalankan komentar Anda
3) layanan mysql mulai

@ sagarshah16 Apa yang terjadi jika saya tidak memiliki layanan mysql?

coba temukan salah satu layanan yang sedang berjalan yang membutuhkan lebih banyak ruang memori. jika bukan mysql.

ya komposer pembaruan ig harus menyelesaikan masalah, sayangnya saya memperbarui melalui git bash. Itu selalu memunculkan kesalahan yang sama untuk memperbarui. Jadi untuk pengguna windows pastikan menggunakan cmd.exe .

Tekan kesalahan tadi. Berada di Ubuntu 16.04 pada instance mikro EC2.
Dipecahkan dengan menambahkan file swap 1G.

$ apt install swapspace 
$ cat /etc/os-release 
NAME="Ubuntu"
VERSION="16.04.3 LTS (Xenial Xerus)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 16.04.3 LTS"
VERSION_ID="16.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
VERSION_CODENAME=xenial
UBUNTU_CODENAME=xenial

Referensi:
http://manpages.ubuntu.com/manpages/xenial/man8/swapspace.8.html

Terima kasih Jeroen T. Vermeulen

Enthusiasm is the light of knowledge. Unknown author.

O estusiasmo é luz do conhecimento. Autor desconhecido.

Masalah ini dapat diperburuk dengan tidak mengaktifkan memory over-commit. Forking sangat tidak efisien tanpa over-commit memori. Pada dasarnya ketika Anda bercabang, Anda menggandakan penggunaan memori yang berkomitmen dari proses Anda saat ini dengan membuat proses identik lainnya. Sebagian besar memori ini dipakai bersama antara proses induk dan anak, tetapi bersifat salin-saat-menulis, jadi setiap penulisan akan menyebabkan memori bersama disalin. Saat over-commit diaktifkan, sistem Anda mengizinkan duplikasi memori bersama ini, tetapi jika Anda menulis ke memori bersama, Anda mungkin tidak memiliki RAM fisik yang cukup untuk menangani salinan. Dengan over-commit dinonaktifkan, sistem Anda tidak akan mengizinkan Anda mengalokasikan memori pada awalnya.

Mendapatkan kesalahan ini dengan 1.4GIG tersedia ...

$ free -m; composer require --dev phpro/grumphp
              total        used        free      shared  buff/cache   available
Mem:           2000         416        1277          21         305        1405
Swap:             0           0           0
Using version ^0.14.1 for phpro/grumphp
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 12 installs, 0 updates, 0 removals
  - Installing symfony/dependency-injection (v3.4.11): The following exception is caused by a lack of memory or swap, or not having swap configured
Check https://getcomposer.org/doc/articles/troubleshooting.md#proc-open-fork-failed-errors for details


  [ErrorException]                                   
  proc_open(): fork failed - Cannot allocate memory

Perbaikan untuk masalah ini adalah dengan menambahkan ruang swap (yaitu paging) ke instance.

Paging bekerja dengan membuat area pada hard drive Anda dan menggunakannya untuk memori tambahan, memori ini jauh lebih lambat daripada memori normal namun masih banyak lagi yang tersedia.

Untuk menambahkan ruang ekstra ini ke instance Anda, Anda mengetik:

sudo / bin / dd jika = / dev / nol dari = / var / swap. 1 bs = 1 juta hitungan = 1024
sudo / sbin / mkswap /var/swap.1
sudo chmod 600 /var/swap. 1
sudo / sbin / swapon /var/swap.1

Jika Anda membutuhkan lebih dari 1024 maka ubah itu menjadi sesuatu yang lebih tinggi.

Untuk mengaktifkannya secara default setelah reboot, tambahkan baris ini ke / etc / fstab:

/var/swap.1 swap default swap 0 0

@dhorrigan aduh menurut jejak tumpukan, sepertinya kesalahan fatal dipicu saat membuat pengecualian (karena itu menggunakan proc_open untuk memeriksa lebar terminal Anda). Sepertinya itu bukan batas memori php melainkan memori mesin yang habis, jadi saya sarankan untuk membersihkan hal-hal lain, dan menjalankannya dengan menginstal daripada memperbarui jika Anda dapat menjalankan pembaruan di tempat lain yang memiliki lebih banyak memori. menginstal dari file kunci menggunakan sedikit memori.

Terima kasih banyak, Alih-alih menjalankan composer update saya melakukan composer install . Yang memperbaikinya!

Lebih baik daripada harus menambah ukuran memori di php.ini atau menambah memori instan itu sendiri.

Mengaktifkan swap menyelesaikan masalah saya.

/ bin / dd if = / dev / zero of = / var / swap. 1 bs = 1M count = 1024
/ sbin / mkswap /var/swap.1
/ sbin / swapon /var/swap.1

Berapa banyak dari Anda yang akan memposting sesuatu yang ditulis di utas ini? @jemerocay , sudah baca topiknya? Hal yang sama diposting ~ 10 pesan di atas.

Kontributor: tolong tutup ini.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat