ホームページ  >  記事  >  開発ツール  >  Composer が壊れて Killed 問題が表示される

Composer が壊れて Killed 問題が表示される

藏色散人
藏色散人転載
2021-07-03 15:38:281774ブラウズ

Composer を実行して、1 GB のメモリ (PHP に割り当てられる最大実行メモリは 128 MB) を備えた Linode VPS に Drupal モジュールをインストールしましたが、成功のプロンプトは表示されず、KILLED プロンプトが表示されるだけでした。

PHP に割り当てられた実行メモリを変更して PHP メモリを 128MB から 256MB に増やした後、エラー メッセージはもう少し具体的になります:

Fatal error: Out of memory (allocated 754982912) (tried to allocate 33554440 bytes) in phar:///usr/local/bin/composer/src/Composer/DependencyResolver/RuleSet.php on line 84

Added to 512MB:

Fatal error: Out of memory (allocated 832577536) (tried to allocate 16777216 bytes) in phar:///usr/local/bin/composer/src/Composer/DependencyResolver/Solver.php on line 223

768MB に追加すると、エラー メッセージは再び単純な KILLED になります。

Composer さんは食欲が旺盛のようです。何をするか?

1. 最も単純かつ大雑把かつ効果的な方法は、サーバーをアップグレードしてサーバーにメモリを追加することです。本当に貧乏でお金が心配なら、作曲家を諦めるか、カーブを抜けて国を救ってください。

2. 別の方法は、サーバーに偽のメモリを割り当てて、サーバーを騙し、SWAP キャッシュについて学習することです。 Big Viagra には次の投稿があります: SWAP Q&A: SWAP とは何ですか? SWAPは何に使用されますか?スワップの使い方は?

大きなバイアグラは、サーバーの SWAP キャッシュを 2.5 GB に増やすことで解決されます。もちろん、偽物は所詮偽物であり、ハードディスクによって作成されるキャッシュは、パフォーマンスの点で本物のメモリに劣ることは間違いありません。

3. Stack Overflow の誰かが効果的と思われる方法を共有していましたが、私は試していません。つまり、ローカル開発環境で Composer を実行し、成功したら、composer.lock または git Push を実稼働サーバーにアップロードし、実稼働サーバーで Composer install を実行します。

composer install は、各ソフトウェア パッケージの最新バージョンを検索するのではなく、.lock ファイル内の構成を読み取り、同じバージョンのソフトウェア パッケージを直接取得します。このようにして、コンポーザーのメモリ要件が軽減されます。

ただし、この方法自体が非常に面倒で成功率も不安なため、できれば使わないでください。

最後に、php.ini 設定ファイルを変更せずに Composer の実行メモリ制限を一時的に解除する方法を共有したいと思います:

php -d memory_limit=-1 /usr/local/bin/composer require/isntall/update

または:

php -d memory_limit=-1 `which composer` require/isntall/update

以上がComposer が壊れて Killed 問題が表示されるの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はdaweibroで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。