Symfony 4 не хватает памяти при использовании Composer - PullRequest
0 голосов
/ 18 февраля 2019

Я использую Symfony 4 ...

Я запускаю эту команду:

php -d memory_limit=-1 composer.phar require form

Сценарий успешно проходит через эти точки ...

./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Nothing to install or update
Package symfony/lts is abandoned, you should avoid using it. Use     symfony/flex instead.
Generating autoload files
ocramius/package-versions:  Generating version class...
ocramius/package-versions: ...done generating version class
Executing script cache:clear [KO]
 [KO]
Script cache:clear returned with error code 255
!!  
!!   // Clearing the cache for the dev environment with debug                       
!!   // true   

Тогда я получаю эту ошибку:

!!  Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 32768 bytes) in /Applications/XAMPP/xamppfiles/htdocs/xxxx/vendor/symfony/var-dumper/Cloner/Data.php on line 306

Я могу запустить этот скрипт без проблем:

php -d memory_limit=-1 bin/console cache:clear

Я не знаю, как обойти это, потому что моя команда говорит обойти ограничение памяти,Что я могу сделать, чтобы выйти за рамки этой ошибки, я не могу ничего установить на данный момент.

Ответы [ 2 ]

0 голосов
/ 18 февраля 2019

Установка предела памяти для всего процесса php может быть опасной, поскольку это может привести к проблемам с памятью при выполнении PHP в веб-контексте.Поэтому обязательно обновляйте конфигурацию только для CLI.Composer также предоставляет точку конфигурации через переменную окружения COMPOSER_MEMORY_LIMIT. Вы можете установить ее с помощью export COMPOSER_MEMORY_LIMIT=-1, добавить ее в свой .bashrc, если вы всегда хотите включить ее, или просто добавить саму команду, если она вам нужна только один раз во время установки:

COMPOSER_MEMORY_LIMIT=-1 composer require form

Вы можете найти различные способы решения проблем, связанных с ограничением памяти, в Руководстве по устранению неполадок Composer .

0 голосов
/ 18 февраля 2019

Когда Composer выполняет скрипт, это отдельный вызов PHP от Composer, поэтому ваша директива командной строки к нему не относится.

Типичным решением будет настройка PHP через его конфигурациюфайл, так что затрагиваются все экземпляры.

Если у вас нет доступа для изменения конфигурации PHP, ваш лучший вариант, вероятно, состоит в том, чтобы запустить composer с --no-scripts, а затем попытаться запустить необходимые сценарии индивидуально с параметром ограничения памяти.

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