以下のコマンドを実行して、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を見つけました
現在の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
Composer.pharファイルの完全なルートを指定するmemory_limit
を設定し、私の場合は次のコマンドで更新します。
php -d memory_limit=-1 C:/wamp64/composer.phar update
manual からの別のソリューション:
Composerは、COMPOSER_MEMORY_LIMIT
環境変数によって定義されたメモリ制限も尊重します。
COMPOSER_MEMORY_LIMIT=-1 composer.phar <...>
または私の場合
export COMPOSER_MEMORY_LIMIT=-1
composer <...>
最近、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
私の場合、これを要求しようとしていた package で、PHP Fatal error: Allowed memory size of
を取得していました。
このように実行するのは簡単で、PHP INIファイルを更新する必要はありません。
例:COMPOSER_MEMORY_LIMIT=-1 composer require huddledigital/zendesk-laravel
これが誰かを助けることを願っています。
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パラメーターを一度に設定することをお勧めします。