2015-06-03 2 views
1

У меня есть эта же ошибка, что и другие при работе php ~/composer.phar update:Композитор proc_open(): вилка не удалось - не удалось выделить память

The following exception is caused by a lack of memory and not having swap configured 
Check https://getcomposer.org/doc/articles/troubleshooting.md#proc-open-fork-failed-errors for details 
Fatal error: Uncaught exception 'ErrorException' with message 'proc_open(): fork failed - Cannot allocate memory' in phar:///home/tea/composer.phar/vendor/symfony/console/Symfony/Component/Console/Application.php:974 
Stack trace: 
0 [internal function]: Composer\Util\ErrorHandler::handle(2, 'proc_open(): fo...', 'phar:///home/te...', 974, Array) 
1 phar:///home/tea/composer.phar/vendor/symfony/console/Symfony/Component/Console/Application.php(974): proc_open('stty -a | grep ...', Array, NULL, NULL, NULL, Array) 
2 phar:///home/tea/composer.phar/vendor/symfony/console/Symfony/Component/Console/Application.php(784): Symfony\Component\Console\Application->getSttyColumns() 
3 phar:///home/tea/composer.phar/vendor/symfony/console/Symfony/Component/Console/Application.php(745): Symfony\Component\Console\Application->getTerminalDimensions() 
4 phar:///home/tea/composer.phar/vendor/symfony/console/Symfony/Component/Console/Application.php(675): Symfony\Component\Console\Application->getTerminalWidth() 
5 phar:///home/tea/composer in phar:///home/tea/composer.phar/vendor/symfony/console/Symfony/Component/Console/Application.php on line 974 

... но с большой например: 4gb RAM и 4 ГБ подкачки. Свободная ОЗУ никогда не исчерпывается, не говоря уже о доступной/кэшированной ОЗУ, и своп не тронут!

   total  used  free  shared buff/cache available 
Mem:   3788   885  1908   9   993  2692 
Swap:   3967   0  3967 

Это первый раз работает обновление композитора на этой новой машине, CentOS/CloudLinux 7,1 (с Cpanel).

В отчаянии, я попытался # php -dmemory_limit=1G ../composer.phar update --no-scripts --prefer-dist , и я попытался удаления composer.lock и поставщика файлов и даже пытался добавить временный файл подкачки , но это на самом деле, кажется, не является проблемой памяти - может ли ошибка быть введена в заблуждение?

proc_open не отключен, и я также попытался отключить защиту от вилки снаружи, но без джива.

Хотел бы поднять голову.

N.B. Я знаю, что совет для фиксации файла composer.lock и установки композитора, но этот экземпляр используется для dev (как и предыдущая машина CentOS/CloudLinux 6.x с меньшими спецификациями ресурсов), поэтому нам нужно использовать те же методы, которые мы использовали ранее.

+0

я имел такую ​​же проблему и увеличенной памяти, но это не сработало. Но увеличение для меня - max_execution_time = 300 и max_input_time = 300 и памяти всего лишь 2048 МБ – GAV

ответ

1

ОК, так что CloudLinux ограничивает память пользователя до 1024 МБ, поскольку он работает, когда предел удваивается до 2048 МБ.

Это та же настройка на нашем предыдущем сервере (CentOS/CloudLinux 6.x), но похоже, что каждая версия CentOS намного голоднее, чем остальная.

Странно, что работающий композитор с --profile показывает, что он использует 482mb. Даже если он удваивается при разрыве (как было предложено), которое все еще ниже предела 1024 МБ.

1

Я столкнулся с той же проблемой. В моей системе было 1,5 ГБ оперативной памяти, и этого было недостаточно ... Композитор очень быстро ел слишком много памяти.

Мое единственное решение было очистить кэш и обновить до последней версии (1.4.2):

composer clear-cache 

sudo composer selfupdate 
Смежные вопросы