Ошибка Composer генерирует нехватку памяти при установке FOSUserBundle - PullRequest
0 голосов
/ 17 мая 2019

Я пытаюсь установить FOSUserBundle, используя composer require friendsofsymfony/user-bundle "~2.0", но произошла ошибка:

Fatal error: Out of memory (allocated 1453326336) (tried to allocate 268435456 b
ytes) in phar://C:/ProgramData/ComposerSetup/bin/composer.phar/src/Composer/Depe
ndencyResolver/Solver.php on line 220

Я искал проблему и нашел ответ: Композитору требуется нехватка памяти. Неустранимая ошибка PHP: допустимый объем памяти 1610612736 байт исчерпан

Я изменил свой php.ini на 1024M, но ничего (даже при обновлении композитора выдает ту же ошибку), затем на -1 ничего не произошло.

Мне интересно, где я могу найти composer.phar для использования этой команды (я установил свой композитор через установщик wondows) :

php -d memory_limit=-1 composer.phar require hwi/oauth-bundle php-http/guzzle6-adapter php-http/httplug-bundle

Обновление:

C:\wamp\www\sym>composer diag
Checking composer.json: OK
Checking platform settings: OK
Checking git settings: OK
Checking http connectivity to packagist: OK
Checking https connectivity to packagist: OK
Checking github.com rate limit: OK
Checking disk free space: OK
Checking pubkeys:
Tags Public Key Fingerprint: 57815BA2 7E54DC31 7ECC7CC5 573090D0  87719BA6 8F3BB
723 4E5D42D0 84A14642
Dev Public Key Fingerprint: 4AC45767 E5EC2265 2F0C1167 CBBB8A2B  0C708369 153E32
8C AD90147D AFE50952
OK
Checking composer version: WARNING
You are not running the latest stable version, run `composer self-update` to upd
ate (1.4.1 => 1.8.5)

C:\wamp\www\sym>composer require friendsofsymfony/user-bundle
Using version ^2.1 for friendsofsymfony/user-bundle
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)

Fatal error: Allowed memory size of 1610612736 bytes exhausted (tried to allocat
e 12 bytes) in phar://C:/ProgramData/ComposerSetup/bin/composer.phar/src/Compose
r/DependencyResolver/Solver.php on line 220

Check https://getcomposer.org/doc/articles/troubleshooting.md#memory-limit-error
s for more info on how to handle out of memory errors.
C:\wamp\www\sym>

Это проблема wampserver O есть 32-битный wamp? требуется ли wapm 64 бит?

Ответы [ 3 ]

0 голосов
/ 17 мая 2019

Вот как я это делаю

php -d memory_limit=-1 `which composer` require hwi/oauth-bundle php-http/guzzle6-adapter php-http/httplug-bundle

Вы должны использовать обратные кавычки вместо одинарных кавычек, но у меня никогда не было с этим проблем.

Вы также можете использоватьреальный путь к вашему файлу composer.phar

/usr/bin/composer.phar

или

/usr/local/bin/composer.phar

Полезные консольные команды

0 голосов
/ 20 мая 2019

Есть несколько вещей, которые могут очень помочь.

  1. Убедитесь, что вы используете последнюю версию Composer (там написано, что вы используете v1.4.1 - это на больше, чемдва года .
  2. Убедитесь, что вы используете хотя бы последнюю версию PHP - версия 7 существенно улучшила использование памяти - иногда вдвое сокращает объем используемой памяти. Версии 7.2 или (лучше) 7.3 должны бытьиспользуемые версии (весна 2019 г.).
  3. Активно ограничивайте количество различных версий пакетов, которые Composer должен проверить, чтобы узнать, что может быть допустимо для использования.
    • Roave / SecurityAdvisories - хорошее начало. Это также остановит установку версий пакетов с известными проблемами безопасности, а также ограничит пространство поиска для допустимых пакетов, позволяя Composer игнорировать большие пакеты возможных пакетов, что означает, что это не так.необходимо хранить большие объемы данных для различных возможных комбинаций.
    • Вы можете добавить другие версиипакеты для дальнейшего сужения пространства поиска.Например, у вас может быть несколько версий с подстановочными знаками «*» (также известными как «Ограничение версии Звезды Смерти»), что почти всегда является плохой идеей.В большинстве случаев лучше использовать номер версии в форме «^ 2.0» или «^ 3.4», что позволяет обновлять версии и функции исправления ошибок (3-е и 2-е числа), но не основные версии, которые часто могут содержать критические изменения.
0 голосов
/ 17 мая 2019

Измените значение php.ini на -1 .Это позволит композитору использовать всю вашу свободную память.Запустите composer diag, чтобы проверить состояние композитора и повторите попытку composer require friendsofsymfony/user-bundle

Если это еще не работает, возможно, это проблема с интернет-соединением

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...