web-dev-qa-db-ja.com

Composer requireはメモリ不足になります。 PHP致命的エラー:1610612736バイトの許容メモリサイズを使い果たしました

以下のコマンドを実行して、HWIOAuthBundleをプロジェクトに追加しようとしています。

composer require hwi/oauth-bundle php-http/guzzle6-adapter php-http/httplug-bundle

HWIOAuthBundle github: https://github.com/hwi/HWIOAuthBundle

composer requireを実行しようとすると、メモリ不足エラーが発生します。

Hwi/oauth-bundleにバージョン^0.6.0@devを使用php-http/guzzle6-adapterにバージョン^1.2@devを使用php-http/httplug-bundleにバージョン^1.10@devを使用./composer.jsonが更新されましたパッケージ情報を含むcomposerリポジトリのロード依存関係の更新(require-devを含む)

PHP致命的エラー:phar:///usr/local/Cellar/composer/1.4.2/libexec/composer.phar/src/Composer/DependencyResolver/Solverで1610612736バイトのメモリサイズを使い果たしました(67108864バイトを割り当てようとしました)。 220行目のphp

致命的なエラー:phar:///usr/local/Cellar/composer/1.4.2/libexec/composer.phar/src/Composer/DependencyResolver/Solver.phpで1610612736バイトのメモリサイズを使い果たしました(67108864バイトを割り当てようとしました) 220行目

Php.iniファイルでmemory_limitを2Gに設定しようとしましたが、動作しませんでした。 php -i | grep php.iniを実行してphp.iniを見つけました

20
Brian Chen

現在のmemory_limit値を取得するには、次を実行します。

php -r "echo ini_get('memory_limit').PHP_EOL;"

php.iniファイルの制限を増やしてみてください(例:Debianのようなシステムの場合は/etc/php5/cli/php.ini):

; Use -1 for unlimited or define an explicit value like 2G
memory_limit = -1

または、コマンドライン引数で制限を増やすことができます:

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

ロードされたphp.iniファイルの場所を取得するには:

php --ini
45
Adam

Composer.pharファイルの完全なルートを指定するmemory_limitを設定し、私の場合は次のコマンドで更新します。

php -d memory_limit=-1 C:/wamp64/composer.phar update
11
Aitor Fernandez

manual からの別のソリューション:

Composerは、COMPOSER_MEMORY_LIMIT環境変数によって定義されたメモリ制限も尊重します。

COMPOSER_MEMORY_LIMIT=-1 composer.phar <...>

または私の場合

export COMPOSER_MEMORY_LIMIT=-1
composer <...>
5

最近、Composerが多くの履歴タグを持つパッケージで高いCPU +メモリを消費することが確認されました。 composer/composer#7577 を参照してください

この問題を回避するには、symfony/flexまたは https://github.com/rubenrua/symfony-clean-tags-composer-plugin を使用します。

composer global require rubenrua/symfony-clean-tags-composer-plugin
5
Ruben Gonzalez

私の場合、これを要求しようとしていた package で、PHP Fatal error: Allowed memory size ofを取得していました。

このように実行するのは簡単で、PHP INIファイルを更新する必要はありません。

例:COMPOSER_MEMORY_LIMIT=-1 composer require huddledigital/zendesk-laravel

これが誰かを助けることを願っています。

1
odubah

Wampserverを使用している場合、Windowsでこの問題を解決する別の方法があります。実際、wampserverのレベルでは、2つのphp.iniファイルがあります。PHPのファイルは、場所C:\ wamp64\bin\php\phpx.xx\php.iniおよびApacheの場所C:\ wamp64\bin\Apache\apachex xx\bin\php.iniこれらのファイルには両方ともmemory_limitパラメーターがあります。したがって、この問題を確実に解決するには、両方のファイルにmemory_limit = -1パラメーターを一度に設定することをお勧めします。

1
Fidèle W. AVI