Composer: ErrorException: proc_open (): fork failure - لا يمكن تخصيص الذاكرة في phar

تم إنشاؤها على ٢٦ يوليو ٢٠١٢  ·  81تعليقات  ·  مصدر: composer/composer

ErrorException: proc_open (): fork failure - لا يمكن تخصيص الذاكرة في phar: ///var/www/workspace/MyProject/build/composer/composer.phar/vendor/symfony/console/Symfony/Component/Console/Application.php على خط 943

مكدس المكالمات:
765208 0.0523 1. {main} () /var/www/workspace/MyProject/build/composer/composer.phar:0
0.0528 763216 2. تتطلب ('phar: ///var/www/workspace/MyProject/build/composer/composer.phar/bin/composer') /var/www/workspace/MyProject/build/composer/composer.phar: 15
0.0830 3504584 3. Composer \ Console \ Application-> قم بتشغيل () 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 . فب: 848
31.9727 246202984 8. proc_open () phar: ///var/www/workspace/MyProject/build/composer/composer.phar/vendor/symfony/console/Symfony/Component/Console/Application. فب: 943
31.9728 246204736 9. Composer \ Util \ ErrorHandler :: handle () phar: ///var/www/workspace/MyProject/build/composer/composer.phar/src/Composer/Util/ErrorHandler. php: 0

Bug

التعليق الأكثر فائدة

أعتقد أنه ليس المؤلف نفسه ، ولكن على أي حال: لا تحتوي المثيلات الصغيرة على ذاكرة التبديل ec2 _ أي _ (افتراضيًا) وبالتالي يقوم نظام التشغيل بتشغيل العمليات ، إذا نفد من الذاكرة. الحل الأفضل بدلاً من الترقية إلى الحجم الصغير (لأنه يكلف أكثر) هو إنشاء مبادلة قائمة على الملف (على الأقل مؤقتًا)

فمثلا.

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

613M أقل بكثير وتذكر أن PHP لا تستهلكه فقط. لا أعتقد أن بإمكان المرء أن يلوم الملحن على ذلك. هل يمكن لأحد أن يغلق هذه القضية؟

ال 81 كومينتر

لحل هذه المشكلة ، كان علي التأكد من توفر أكثر من 1 أزعج من الذاكرة.

كنت أواجه هذه المشكلة أيضًا ولكن زيادة PHP memory_limit حل المشكلة.

كذلك هنا:

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

مزيد من المعلومات حول النظام:

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

حصلت على نفس الخطأ مرتين ، ولكن يمكن القول: إنه يعمل منذ حوالي ساعة (بدون أي تغيير في الإعداد) والآن في المرة الثالثة حاول أن يعمل مرة أخرى (بدون أي تغيير على الإطلاق).

$ 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

تحديث:

حسنا انسى الامر. لقد نسيت تفعيل المبادلة مرة أخرى ... نفدت ذاكرة الجهاز _ حقا_ ...

واجهت نفس المشكلة عند محاولة نشر مثيل Amazon AWS EC2 Micro. تحتوي هذه المثيلات على 613 ميجابايت فقط من الذاكرة في المجموع ، لذا يفشل الملحن في تخصيص ذاكرة كافية لتشغيل التحديث. أدت الترقية إلى نسخة صغيرة بسعة 1.7 جيجا بايت من الذاكرة الإجمالية إلى التخلص من المشكلة.

لدي نفس المشكلة .... هل يحتاج الملحن حقًا إلى الكثير من الذاكرة؟ : -O

أعتقد أنه ليس المؤلف نفسه ، ولكن على أي حال: لا تحتوي المثيلات الصغيرة على ذاكرة التبديل ec2 _ أي _ (افتراضيًا) وبالتالي يقوم نظام التشغيل بتشغيل العمليات ، إذا نفد من الذاكرة. الحل الأفضل بدلاً من الترقية إلى الحجم الصغير (لأنه يكلف أكثر) هو إنشاء مبادلة قائمة على الملف (على الأقل مؤقتًا)

فمثلا.

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

613M أقل بكثير وتذكر أن PHP لا تستهلكه فقط. لا أعتقد أن بإمكان المرء أن يلوم الملحن على ذلك. هل يمكن لأحد أن يغلق هذه القضية؟

يجب ألا يواجه الأشخاص الذين يستخدمون المثيلات الصغيرة مشاكل بعد الآن بعد تحديث الملحن وتحديث ملف القفل الخاص بك إلى التنسيق الجديد ، راجع # 1109. إذا كانت لديك مشكلات في الذاكرة مع أشياء أخرى غير التثبيت ، فراجع # 600.

أنا أواجه هذه المشكلة مرة أخرى. هنا تفريغ بلدي:

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

يؤدي القيام بالتشغيل الجاف باستخدام التنميط إلى إرجاع معلومات استخدام الذاكرة التالية:

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

مرحبا،

مجرد تخمين: هل تقوم بتشغيل هذا على AWS-micro؟ هل لديك مقايضة
ممكن؟

مع تحياتي،
سيباستيان

2012/12/20 دان Horrigan [email protected]

أنا أواجه هذه المشكلة مرة أخرى. هنا تفريغ بلدي:

خطأ فادح في PHP: استثناء غير معلوم "ErrorException" برسالة "proc_open (): فشل fork - لا يمكن تخصيص الذاكرة" في phar: ///vagrant/www/api-v3/composer.phar/vendor/symfony/console/Symfony/Component /استمارة القنصلية. فب: 969
تتبع المكدس:

0 [وظيفة داخلية]: 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 ...'، صفيف ، NULL ، NULL ، NULL ، صفيف)

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 على السطر 969

يؤدي القيام بالتشغيل الجاف باستخدام التنميط إلى إرجاع معلومات استخدام الذاكرة التالية:

استخدام الذاكرة: 25.95 ميجا بايت (الذروة: 67.15 ميجا بايت) ، الوقت: 9.21 ثانية

-
يمكنك الرد على هذه الرسالة الإلكترونية مباشرةً أو عرضها على Gi tHubhttps: //github.com/composer/composer/issues/945#issuecomment -11587234.

github.com/KingCrunch

dhorrigan ouch وفقًا لتتبع المكدس ، يبدو أنه تم تشغيل الخطأ الفادح أثناء تقديم استثناء (حيث يستخدم proc_open للتحقق من عرض الجهاز). يبدو أنه ليس حد ذاكرة php بل ذاكرة الجهاز التي نفدت ، لذا أقترح مسح أشياء أخرى وتشغيلها بالتثبيت بدلاً من التحديث إذا كان بإمكانك تشغيل التحديث في مكان آخر به ذاكرة أكبر. التثبيت من ملف القفل يستخدم ذاكرة قليلة جدًا.

أقوم بتشغيل هذا في صندوق Vagrant ، وهناك الكثير من التشغيل عليه ، لكن هذه هي المرة الأولى التي أراها. سأحاول إعادة بناء الصندوق بمزيد من الذاكرة وأرى ما سيحدث. سأتابع.

لأكون صادقًا ، فإن 67 ميجا بايت ليست كبيرة جدًا. أستطيع أن أرى كيف أنها مشكلة إذا فشلت ، ولكن في هذا اليوم وهذا العصر ، لا يمكن طلب بضع مئات من الميغابايت من ذروة الذاكرة ؛)

يا ، وجدت المشكلة ، الجهاز الافتراضي لديه فقط 6 ميغا بايت من الذاكرة المتاحة (من 512 ميغا بايت) ، هاها ، أنا أرفعها للحصول على ذاكرة 1 جيجابايت. يجب أن تتحقق من ذلك أولا. الاستمرار في.

Seldaek تحتوي المثيلات الصغيرة على 590 ميجابايت ولا يتم تبديلها افتراضيًا. للتلاعب بهذا الأمر يعمل بشكل جيد ، ولكن بمجرد أن يحتاج بعض التطبيقات إلى المزيد ، فإنه ينكسر تمامًا. لذلك كما ذكرنا سابقًا: إنشاء مقايضة يمسك هذا :) لا يستغرق الأمر سوى 10 أو 20 ميجابايت.

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

KingCrung صحيح. أضفت للتو مبادلة إلى مثيل EC2 الصغير الخاص بي كما هو موضح هنا .

الآن يعمل تحديث التبعيات مثل السحر.

تضمين التغريدة شكرا لك!! :)

أنا أيضا أتلقى هذه المشكلة. 1GB Vagrant على 4GB Macbook Air. يحدث حتى عندما أقصر التحديث على بائع معين.

خطأ فادح في PHP: استثناء غير معلوم "ErrorException" برسالة "proc_open (): فشل fork - لا يمكن تخصيص الذاكرة" في phar: /// usr / local / bin / composer / vendor / symfony / console / Symfony / Component / Console / Application . فب: 1033
تتبع المكدس:

0 [وظيفة داخلية]: Composer \ 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 ، صفيف)

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 ()

يمكن حلها عن طريق Vagrant Halt && vagrant up && vagrant ssh ثم الجري مرة أخرى.

استخدام الذاكرة: 102.39 ميجابايت (الذروة: 427.97 ميجابايت) ، الوقت: 104.79 ثانية

adamsmeat شكرا! أنا استخدم الحل الخاص بك لمثال DO الخاص بي

adamsmeat - يمكنني أن أؤكد على جهاز Ubuntu 12.04 512 ميجابايت الذي تم تحميله بالمخزون أن الحل الخاص بك هو ما تحتاجه. Symfony2 مثبت الآن ويعمل حسب الرغبة.

adamsmeat الذي أنقذ حياتي ، أضفت للتو مساحة مبادلة 512 ميجابايت على مثيل EC2 الصغير وتم حل المشكلة.

كما أنني واجهت هذه المشكلة ، حيث كانت الذاكرة الأولية 512 ميجا في بيئة استخدام الصندوق المتشرد ، وتم حل المشكلة بعد زيادة 2048 جيجا.

واجهت هذه المشكلة باستخدام شريحة Digital Ocean بسعة 512 ميجابايت ... اضطررت إلى https://github.com/composer/composer/issues/945#issuecomment -8552757

نفس هنا @ prodev42

حاولت نسخ composer.lock إلى الخادم المباشر ويعمل. مع الأمر

php composer.phar --verbose install

paparts يبدو أنك لا composer.lock ؟ كقاعدة عامة: بالنسبة للتطبيقات ، قم بإصدارها ، للمكتبات ، لا تفعل ذلك. لا يجب عليك تشغيل update على نظام مباشر ، لأنه من المحتمل جدًا أن تأتي حزمة عاجلاً أم آجلاً ، مما يؤدي إلى تعطيل تطبيقك ، دون أن تكون قد اختبرتها محليًا. يضمن composer.lock و composer.phar install تثبيت تلك الحزم بالضبط في تلك الإصدارات ، والتي قمت بتطوير تطبيقك مقابلها.

لم ألاحظ أن إطار العمل الذي كنت أستخدمه قد أدرج composer.lock في قائمة التجاهل. شكرا لتوضيح ذلك.

حدثت مشكلة اليوم مع مثيل EC2 الصغير. تم إصلاح PHP memory_limit إلى 512 م.

هل سيكون ذلك شيئًا جيدًا لفعله؟ في ذاكرة المحيط الرقمية لا يتجاوز حجمها 512 ميجا بايت ، ومن المحتمل أن يؤدي استخدام PHP لاستهلاك هذه الذاكرة إلى استخدام جهاز VM الخاص بك.

أوه لا على الإطلاق. لا داعي لذكر أنه ليس خادم إنتاج.

كنت أقوم بتثبيت حزمة تتطلب symfony / event-dispatcher ، لذا لا يمكنني الآن تثبيت حزمة واحدة بسبب الخطأ أعلاه: S

حصلت على هذا عندما قمت بتمكين opcache.enable_cli في php cli ini

@ younes0 هذا وصف غامض جدا. هل قرأت المناقشة كاملة هنا؟ عادةً ما يكون ذلك بسبب نفاد الذاكرة لديك دون تمكين التبديل عادةً داخل مثيل سحابة صغير جدًا ، أو VM.

KingCrunch في حالتي ، لم يكن مرتبطًا yooper عندما حاولت تثبيت حزم الملحن مع تعيين خيار opcache.enable_cli php على On (VM أم لا)

نفس الخطأ.

لدي قطيرة رقمية مع ذاكرة وصول عشوائي 1 جيجا بايت.

عندما أبدأ php composer.phar update فإنه يأكل كل ذاكرة الوصول العشوائي المتاحة ثم يطرح استثناء.

في cli/php.ini لدي memory_limit = -1 .

إذا كان الحل هو الترقية إلى تطبيق droplet الصغير مع ذاكرة وصول عشوائي أكبر للملحن فقط ، فسأفعل php composer.phar update على جهازي المحلي ثم تحميل الملفات إلى vps الخاص بي.

فقط قم بتضمين composer.lock

paparts شكرا لك ، إنه يعمل.

أنجز php composer.phar update على الجهاز المحلي ، ثم حمّل composer.lock إلى VPS وأعمل php composer.phar install

moldcraft الحل الآخر موصوف في مكان ما أعلاه: فقط قم بإنشاء ذاكرة مبادلة ، وهذا بطيء جدًا ، لكنه على الأقل يمنعك من أخطاء OOM.

KingCrunch تم وصف الحل الآخر في مكان ما أعلاه

سيكون من الرائع أن يقوم yooper بتحديث وصف المشكلة بالحلول التي تم العثور عليها

ProTip: تعمل خدعة المبادلة أيضًا مع VirtualBox VMs المحلية التي تعمل مع Vagrant.

أحاول الإدخال باستخدام ajax ، لكن هذا لا يعمل ، الخطأ هو: استثناء غير معلوم: نفاد الذاكرة ..
أي فكرة عن هذا ..

sivagurupr لا أعرف ، ما الذي تتحدث عنه ، لكن لدي شعور ، أنه لا علاقة له بهذه المشكلة. لا يمتلك الملحن (CLI) أي قدرات أياكس: مرتبك: ومع ذلك ، في النهاية وبعد قراءة التعليقات "نفاد الذاكرة" يجب أن تكون ذاتية الشرح: غمزة:

أي خطأ في هذا الكود ....

يوم الخميس ، 12 مارس 2015 الساعة 4:08 مساءً ، سيباستيان كريبس [email protected]
كتب:

sivagurupr https://github.com/sivagurupr لا أعرف ما أنت
أتحدث عنه ، لكنني أشعر أنه لا علاقة له بهذه القضية.
لا يمتلك الملحن (CLI) أي إمكانيات أياكس [الصورة:: confused:]
ومع ذلك ، في النهاية وبعد قراءة التعليقات "من الذاكرة" ينبغي
أن تشرح ذاتيًا [image:: wink:]

-
قم بالرد على هذا البريد الإلكتروني مباشرة أو قم بعرضه على GitHub
https://github.com/composer/composer/issues/945#issuecomment -78456750.

واجهت هذه المشكلة عند تثبيت http://github.com/sabre/xml على جهاز Vagrant. ومع ذلك ، تمكنت من إصلاحه من خلال تمكين التبديل باستخدام المثال أعلاه.

لدي نفس الخطأ ولكن مع مثال كبير: 4 جيجابايت من ذاكرة الوصول العشوائي ومبادلة 4 جيجابايت. لا يتم استنفاد ذاكرة الوصول العشوائي المجانية مطلقًا ، ناهيك عن ذاكرة الوصول العشوائي المتاحة / المخزنة مؤقتًا ، ولا يتم لمس التبادل!

إنها المرة الأولى التي يتم فيها تشغيل تحديث الملحن على هذا الجهاز الجديد CentOS / CloudLinux 7.1.

أيه أفكار؟ رجاء؟

كان لدي نفس الخطأ أثناء تشغيل Vagrant Box الخاص بي. كان لدي 2 غيغابايت من ذاكرة الوصول العشوائي عندما تلقيت الخطأ. قمت بتمديد ذاكرة الوصول العشوائي إلى 4 جيجابايت وعملت. لكن ، لا يزال من الغريب أنها تحتاج إلى الكثير من الكبش.

واجهت هذه المشكلة مرة أخرى ولم تنجح إضافة composer.lock. لكن بدلاً من ذلك حاولت استخدام مساحة التبادل بدلاً من توسيع مساحة الذاكرة. مقال عن ديجيتال أوشن أنيق للغاية https://www.digitalocean.com/community/tutorials/how-to-configure-virtual-memory-swap-file-on-a-vps

لقد واجهت المشكلة أيضًا:

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 الخاص بي على -1

مخرجاتي free :

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

كنت أواجه هذه المشكلة أيضًا ولكن زيادة PHP memory_limit حل المشكلة.

أنا أيضا

كانت تواجه نفس المشكلة مع تعيين memory_limit على -1. الشيء الوحيد الذي نجح معي هو إعادة تحميل جهازي.

كيفية إضافة Swap على Ubuntu 14.04
https://www.digitalocean.com/community/tutorials/how-to-add-swap-on-ubuntu-14-04

ساعدني هذا المقال على مثيل ذاكرة الوصول العشوائي 512 ميجا بايت.

[محلول] إذا كنت تقوم بتشغيل هذا في آلة افتراضية ، فقم بإيقاف الجهاز الظاهري إما عن طريق أمر وقف المتشرد أو بالتوقف الجميل.

قم بتغيير حجم ذاكرة الوصول العشوائي حسب التطبيق الخاص بك ، في حالتي قمت بتحديث الذاكرة إلى 1024 ميجا بايت.
الافتراضي كان 256 ميغا بايت ؛

أي أنها عملت

أوقف خدمة mysql httpd أو nginx ثم أعد التشغيل

تشغيل الملحن

وإعادة تشغيل الخدمات

مرحبا sergiohermes

هذا يعمل فقط ، عندما يستهلك nginx و / أو mysql بالصدفة هذا القدر من الذاكرة ، يفقد الملحن ذلك. قد لا يكون إيقاف الخدمات الأساسية أيضًا خيارًا في معظم الحالات. يجب أن تستثمر حقًا في الذاكرة ، إما فعليًا ، أو في شكل قسم / ملف مبادلة. كل شيء موثق بالفعل في هذا الموضوع.

أنا أفهم ، على أي حال كانت طريقة دون الحاجة إلى المبادلة.
الأنسب هو إنشاء مقايضة. بدون أدنى شك.
تم العثور على إلقاء نظرة على "centos" مرجع مثير للاهتمام.

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

أعتقد أنه سيضيف هذا الموضوع.

أوه ، أنا أستخدم المبادلة لحلها ، شكرا

يمكنك تجنب ذلك إما بزيادة حجم الذاكرة من ملف php.ini ، وهو خيار خاطئ. من الأفضل حذف ذاكرة التخزين المؤقت وإعادة بناء الحزم.

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

أو يمكن أن يتم ذلك من خلال:

/ 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 أعتقد أنك خلطت شيئًا ما

  • لا تؤدي إزالة الملفات إلى تحرير ذاكرة الوصول العشوائي
  • لا يتعلق الأمر بـ PHPs memory_limit ، بل بالذاكرة (الافتراضية) من النظام بأكمله. لا يوجد إعداد ini ، يمكنه إنشاء ذاكرة الوصول العشوائي.

لقد قمت بحل نفس المشكلة في Vagrant.

قمت بسهولة بزيادة الذاكرة على الجهاز الظاهري Vagrant http://www.josheaton.org/increase-memory-vagrant-virtual-machine/
ثم قمت بزيادة قيمة memory_limit
واحذف ذاكرة التخزين المؤقت للملحن: sudo rm -R ~ / .composer
وأخيرًا إعادة تحميل المتشرد .

واجهت نفس المشكلة في Virtual Box يعمل عبر Vagrant.
تم إصلاحه عن طريق زيادة ذاكرة الوصول العشوائي VBox.

تغيير التكوين من vb.memory = 512 إلى vb.memory = 1024

لقد أضفت ذاكرة المبادلة وحلت مشكلتي.

نفدت ذاكرة المبادلة ، جرب هذا

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

لإضافة ملف مبادلة:

حدد حجم ملف المبادلة الجديد بالميغابايت واضربه في 1024 لتحديد عدد الكتل. على سبيل المثال ، حجم كتلة ملف مبادلة 64 ميغا بايت هو 65536.
في موجه shell كجذر ، اكتب الأمر التالي مع كون العدد مساويًا لحجم الكتلة المطلوب:
dd if = / dev / zero of = / swapfile bs = 1024 count = 65536
قم بإعداد ملف المبادلة باستخدام الأمر:
mkswap / ملف المبادلة
لتمكين ملف المبادلة على الفور ولكن ليس تلقائيًا في وقت التمهيد:
swapon / swapfile
لتمكينه في وقت التمهيد ، قم بتحرير / etc / fstab لتضمين الإدخال التالي:
/ swapfile swap الافتراضي 0 0
في المرة التالية التي يقوم فيها النظام بالتمهيد ، فإنه يمكّن ملف المبادلة الجديد.

بعد إضافة ملف المبادلة الجديد وتمكينه ، تحقق من تمكينه من خلال عرض إخراج الأمر cat / proc / swaps أو free.

شكرا لك!

تلميحات - إذا لم تؤد إضافة المبادلة إلى حل مشكلة نفاد ذاكرة الملحن / تعذر تخصيص الخطأ:

  • أعد تشغيل جهازك بعد إضافة المبادلة. لقد اكتشفت أن خطأ الملحن لم يختف بعد إضافة 8G من المبادلة. ولكن بعد إعادة تشغيله عملت.
  • لقد أغلقت أيضًا جهاز VM آخر كنت أقوم بتشغيله وأغلقت Chrome بعدد كبير جدًا من علامات التبويب

(أنا أستخدم الملحن في بيئة تطوير على macOS X Sierra 10.12.4 مع ذاكرة وصول عشوائي سعتها 16 جيجا بايت).

هل تم حل هذا؟ لقد قمت بتحديث الملحن عالميًا. بالإضافة إلى ذلك ، قمت بإنشاء مساحة مبادلة 1 جيجابايت لكل اقتراح @ gillera235 . ما زلت أحصل على نفس الخطأ. ما الذي يمكنني فعله لتحرّي الخلل وإصلاحه؟

إذا كان ذلك مفيدًا ، فأنا أستخدم مثيل EC2 صغير المستوى.

ادفع ملف composer.lock على الخادم الخاص بك وافعل

الملحن - مطول التثبيت

وبهذه الطريقة لم يستغرق الأمر مساحة كبيرة من الذاكرة وكان تثبيت الحزم المحدثة بسرعة فائقة وفقًا للإصدارات الموجودة في ملف composer.lock

يحدث ذلك عندما يكون لديك ذاكرة أقل
جرب هذه الخطوات
1) خدمة توقف MySQL
2) قم بتشغيل تعليقك
3) خدمة MySQL تبدأ

@ sagarshah16 ماذا يحدث إذا لم يكن لدي خدمة mysql؟

حاول العثور على أي من الخدمات قيد التشغيل تشغل مساحة أكبر من الذاكرة. إذا لم يكن MySQL.

نعم ، يجب أن يحل ملحن تحديث ig المشكلة ، للأسف أقوم بالتحديث عبر git bash. دائما ما تحدث نفس الخطأ للتحديث. لذا لمستخدمي windows فقط تأكد من استخدام cmd.exe .

ضرب الخطأ في وقت سابق. كان يعمل على Ubuntu 16.04 على مثيل EC2 micro.
تم حلها عن طريق إضافة ملف مبادلة 1G.

فقط اتبعت هذا الرابط وحل المشكلة.

https://www.digitalocean.com/community/tutorials/how-to-add-swap-space-on-ubuntu-16-04

$ 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

مرجع:
http://manpages.ubuntu.com/manpages/xenial/man8/swapspace.8.html

شكرا لك جيرون تي فيرميولين

Enthusiasm is the light of knowledge. Unknown author.

O estusiasmo é luz do conhecimento. Autor desconhecido.

يمكن أن تتفاقم هذه المشكلة بسبب عدم تمكين الذاكرة الزائدة عن الحد. Forking غير فعال بشكل كبير بدون الذاكرة الزائدة. بشكل أساسي عند الانقسام ، يمكنك مضاعفة استخدام الذاكرة المخصص لعمليتك الحالية من خلال إنشاء عملية مماثلة أخرى. تتم مشاركة جزء كبير من هذه الذاكرة بين عمليات الوالدين والطفل ، ولكن يتم نسخها عند الكتابة ، لذا فإن أي عمليات كتابة ستؤدي إلى نسخ الذاكرة المشتركة. عند تمكين التجهيز الزائد ، يسمح نظامك لهذه الذاكرة المشتركة المكررة ، ولكن إذا كتبت إلى الذاكرة المشتركة ، فقد لا يكون لديك ذاكرة RAM فعلية كافية للتعامل مع النسخة. مع تعطيل الالتزام الزائد ، لن يسمح لك نظامك بتخصيص الذاكرة في المقام الأول.

الحصول على هذا الخطأ مع 1.4GIG متاح ...

$ 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

إصلاح هذه المشكلة هو إضافة مساحة مبادلة (أي ترحيل صفحات) إلى المثيل.

يعمل الترحيل عن طريق إنشاء منطقة على محرك الأقراص الثابتة واستخدامه لذاكرة إضافية ، وهذه الذاكرة أبطأ بكثير من الذاكرة العادية ولكن يتوفر الكثير منها.

لإضافة هذه المساحة الإضافية إلى المثيل الخاص بك ، اكتب:

sudo / bin / dd if = / dev / صفر من = / var / swap.1 bs = 1M count = 1024
sudo / sbin / mkswap /var/swap.1
sudo chmod 600 /var/swap.1
sudo / sbin / swapon / var/swap.1

إذا كنت بحاجة إلى أكثر من 1024 ، فقم بتغيير ذلك إلى شيء أعلى.

لتمكينه افتراضيًا بعد إعادة التشغيل ، أضف هذا السطر إلى / etc / fstab:

/var/swap.1 الإعدادات الافتراضية لمبادلة المبادلة 0 0

dhorrigan ouch وفقًا لتتبع المكدس ، يبدو أنه تم تشغيل الخطأ الفادح أثناء تقديم استثناء (حيث يستخدم proc_open للتحقق من عرض الجهاز). يبدو أنه ليس حد ذاكرة php بل ذاكرة الجهاز التي نفدت ، لذا أقترح مسح أشياء أخرى وتشغيلها بالتثبيت بدلاً من التحديث إذا كان بإمكانك تشغيل التحديث في مكان آخر به ذاكرة أكبر. التثبيت من ملف القفل يستخدم ذاكرة قليلة جدًا.

شكرًا جزيلاً ، بدلاً من تشغيل composer update قمت بعمل composer install . الذي تم إصلاحه!

من الأفضل أن تضطر إلى زيادة حجم الذاكرة في php.ini أو زيادة ذاكرة المثيل نفسها.

أدى تشغيل المبادلة إلى حل مشكلتي.

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

كم منكم سينشر شيئًا ما كتب في هذا الموضوع؟ jemerocay ، هل قرأت الموضوع؟ تم نشر نفس الشيء ~ 10 رسائل أعلاه.

المساهمون: أغلق هذا من فضلك.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات