PHP Composer update "не удается выделить память" ошибка (с помощью Laravel 4)
Я просто не могу решить это один.
Я нахожусь на базовом плане Linode 1G RAM. Попытка установить пакет через Composer, и это не позволяет мне. Мой лимит памяти установлен в" -1 " на PHP.ini
есть ли что-нибудь еще, что я могу сделать, чтобы установить это?
Loading composer repositories with package information
Updating dependencies (including require-dev)
- Installing thujohn/rss (dev-master df80a7d)
Downloading: 100%
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:975
Stack trace:
#0 [internal function]: ComposerUtilErrorHandler::handle(2, 'proc_open(): fo...', 'phar:///usr/loc...', 975, Array)
#1 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php(975): proc_open('stty -a | grep ...', Array, NULL, NULL, NULL, Array)
#2 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php(853): SymfonyComponentConsoleApplication->getSttyColumns()
#3 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php(818): SymfonyComponentConsoleApplication->getTerminalDimensions()
#4 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php(752): SymfonyComponentConsoleApplication->getTerminalWidth()
#5 phar:///usr/local/bin/com in phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php on line 975
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:975
Stack trace:
#0 [internal function]: ComposerUtilErrorHandler::handle(2, 'proc_open(): fo...', 'phar:///usr/loc...', 975, Array)
#1 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php(975): proc_open('stty -a | grep ...', Array, NULL, NULL, NULL, Array)
#2 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php(853): SymfonyComponentConsoleApplication->getSttyColumns()
#3 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php(818): SymfonyComponentConsoleApplication->getTerminalDimensions()
#4 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php(752): SymfonyComponentConsoleApplication->getTerminalWidth()
#5 phar:///usr/local/bin/com in phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php on line 975
20 ответов:
немного старый, но на всякий случай кто-то новый ищет решение, обновление версии PHP может решить эту проблему.
также вы должны совершать свой композитор.заблокируйте файл и выполните установку composer в рабочей среде, которая менее ресурсоемка.
подробнее здесь: https://github.com/composer/composer/issues/1898#issuecomment-23453850
похоже, у вас заканчивается память подкачки, попробуйте это
/bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024 /sbin/mkswap /var/swap.1 /sbin/swapon /var/swap.1
Как упоминалось @BlackBurn027 в комментариях ниже, это решение было описано в здесь
я столкнулся с той же проблемой. Я нахожусь на свободной Микроустановке AWS, которая имеет меньше памяти. Я всегда пробую один из следующих вариантов, и он всегда работает (перед всем этим, пожалуйста, проверьте, если у вас установлена последняя версия композитора)
sudo php -dmemory_limit=750M composer.phar update
или удалите содержимое папки поставщика и попробуйте обновить composer.
sudo rm -rf vendor sudo php -dmemory_limit=750M composer.phar update --no-scripts --prefer-dist sudo php artisan --dump-autoload
второй вариант пытается обновить все компоненты, если обновления нет, он забирает пакет из кэша else поднимает с dist
Примечание: пожалуйста, измените лимит памяти по вашему выбору.
или
создать раздел подкачки и попробовать. Раздел подкачки-это часть жесткого диска, которую linux использует в качестве виртуальной памяти, когда у нее заканчивается физическая память. Это похоже на файл подкачки windows только вместо использования фактического файла, linux использует раздел на жестком диске вместо этого.
надеюсь, что это помогает
У меня была такая же проблема на бродягу. Я исправил это с помощью allcate больше памяти.
config.vm.provider :virtualbox do |vb| vb.customize ["modifyvm", :id, "--memory", "1024"] end
легко, введите эту команду:
rm -rf vendor/
rm -rf composer.lock
php composer install --prefer-dist
должен работать для машин с низкой памятью
вот решение, которое я нашел, что работает для меня каждый раз:
df -h dd if=/dev/zero of=/swapfile bs=1M count=1024 sudo dd if=/dev/zero of=/swapfile bs=1M count=1024 mkswap /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile echo 'echo "/swapfile none swap defaults 0 0" >> /etc/fstab' | sudo sh free -m confirm u see your swap there: total used free shared buffers cached Mem: 494 335 158 0 19 62 -/+ buffers/cache: 254 240 Swap: 1023 3 1020 watch free -m
Это, кажется, повторяющаяся проблема с 1 ГБ и меньшими экземплярами сервера. Помимо попыток завершения процессов и настройки настроек подкачки, вы можете установить на локальном компьютере и загрузить.
Как композитор руководство по устранению неисправностей здесь Это может происходить из-за того, что у VPS заканчивается память и нет места подкачки.
free -m
чтобы включить своп, вы можете использовать, например:
sudo /bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024 sudo /sbin/mkswap /var/swap.1 sudo /sbin/swapon /var/swap.1
попробуйте это:
/bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024 /sbin/mkswap /var/swap.1 /sbin/swapon /var/swap.1
эта работа для меня на Centos 6
попробуй это:
/bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024 /sbin/mkswap /var/swap.1 /sbin/swapon /var/swap.1
я попадаю в эту ситуацию большую часть времени, поэтому обычно я следовал шагу установки памяти подкачки.
выполнить
composer update --no-dev
кромеcomposer update
Я решил ту же проблему в Vagrant. Я увеличил значение memory_limit и удалить кэш композитора: sudo rm-R ~/.композитор и наконец бродячая перезагрузка.
вот шаги, чтобы исправить проблему: (используется метод мгновенного быстрого выделения файлов подкачки)
### Server SWAP Setup (Ubuntu 16.04 SWAP to Fix Out of Memory Errors) # Check if you have swap already, memory and disk size: sudo swapon -s free -m df -h # Make swap file: (change 1G to 4G if you want 4GB SWAP memory) sudo fallocate -l 1G /swapfile # Check swap file: ls -lh /swapfile # Assign Swap File: sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile # Check if swap OK, memory and disk size: sudo swapon -s free -m df -h # Attach Swap File on System Restart: sudo nano /etc/fstab /swapfile none swap sw 0 0 # Adjust Swap File Settings: cat /proc/sys/vm/swappiness cat /proc/sys/vm/vfs_cache_pressure sudo sysctl vm.swappiness=10 sudo sysctl vm.vfs_cache_pressure=50 sudo nano /etc/sysctl.conf # SWAP File Priority: (0-100% => 0: Don't put to swap, 100: Put on SWAP and free the RAM) vm.swappiness=10 # Remove inode from cache: (100: system removes inode information from the cache too quickly) vm.vfs_cache_pressure = 50
есть такая же проблема с PHP composer.обновление phar на моем хостинге 512mb.
решается с помощью на PHP композитор.phar install
У меня была аналогичная проблема на самом дешевом сервере (512MB RAM), размещенном с DigitalOcean, и я также запускал Jenkins CI на том же сервере. После того, как я остановил экземпляр Jenkins, команда composer install работала (ну, в какой-то момент она потерпела неудачу с отсутствующим расширением mcrypt, кроме того, что уже установлена!).
возможно, если у вас есть другое приложение, работающее на сервере, возможно, стоит попытаться остановить его и повторно запустить команду.
Я попытался просто удалить папку поставщика и композитора.заблокируйте файл, а затем я запускаю команду "composer clear-cache", а затем устанавливаю composer. Так он работает без каких-либо ошибок.
сделайте подкачку и снова запустите команду composer. Я надеюсь, что это сработает для вас.
$ dd if=/dev/zero of=/swapfile bs=1024 count=512k $ mkswap /swapfile $ swapon /swapfile $ echo "/swapfile none swap sw 0 0 " >> /etc/fstab $ echo 0 > /proc/sys/vm/swappiness $ chown root:root /swapfile $ chmod 0600 /swapfile