問題が発生したので、Laravel 4プロジェクトに新しいパッケージをインストールしようとしました。しかし、php composer.phar update
を実行すると、次のようになります。
Loading composer repositories with package information
Updating dependencies (including require-dev)
Killed
インターネットで問題を探しましたが、メモリが問題であることがわかりました。十分なRAMが利用できないと思います。 composerは実際により多くのRAMを必要としますか?
「強制終了」メッセージは通常、プロセスが大量のメモリを消費したことを意味するため、可能であればシステムにメモリを追加する必要がある場合があります。この回答を書いている時点では、composer update
を特定の状況で機能させるために、仮想マシンのメモリを少なくとも768MBに増やす必要がありました。
ただし、ライブサーバーでこれを行う場合は、composer update
を使用しないでください。代わりにすべきことは:
composer update
をローカル環境(ローカル物理マシン、または開発仮想マシン)で実行しますgit Push
composer install
を実行しますcomposer install
は.lockファイルから読み取り、すべてのパッケージの最新バージョンを見つけるのではなく、毎回まったく同じバージョンをフェッチします。これにより、アプリが壊れにくくなり、composerが使用するメモリが少なくなります。
詳細はこちら: https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file
私のように、メモリ不足のmicro VMを使用している場合は、スワップファイルを作成するとうまくいきます。
free -m
mkdir -p /var/_swap_
cd /var/_swap_
#Here, 1M * 2000 ~= 2GB of swap memory
dd if=/dev/zero of=swapfile bs=1M count=2000
mkswap swapfile
swapon swapfile
chmod 600 swapfile
echo "/var/_swap_/swapfile none swap sw 0 0" >> /etc/fstab
#cat /proc/meminfo
free -m
ところで、ファイルの別の場所/ファイル名/サイズを自由に選択してください。/var
はおそらく最良の場所ではありませんが、どの場所になるかわかりません。小さなサーバーは主にテスト目的で使用されるため、ほとんど気にしません。
ホスティングのメモリが不足しているためです。 this tutorialを確認してください。
残念ながらcomposerには多くのRAMと処理能力が必要です。ここに私がやったいくつかのことがあります。これは私のクラウドプレイペン環境にありました。
service mysql stop
(DB/mem-hogサービスを強制終了して、いくつかのRAMを解放します-再度起動することを忘れないでください!)top
を実行しているセカンダリターミナルセッションを使用して、プロセスが完了するまでメモリ/スワップ消費を監視します。composer.phar update --prefer-dist -vvv
(詳細な出力[作業中にいくつかの点でハングする]およびdistro Zipファイルを使用)。 --dry-run
も試してみませんか?余分なメモリを必要としないDigitalOceanの修正-スワップの有効化、1gbの例を次に示します。
以下のターミナルで実行
/bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024
/sbin/mkswap /var/swap.1
Sudo /sbin/swapon /var/swap.1
上記のソリューションは、次回のリブートまで機能します。その後、スワップを再アクティブ化する必要があります。再起動間で保持するには、fstabにスワップファイルを追加します。
Sudo nano /etc/fstab
上記のファイルを開き、ファイルに以下の行を追加します
/var/swap.1 swap swap sw 0 0
サーバーを再起動します。 Composer requireは正常に動作します。
このようなものを試すことができます
php -d memory_limit=4G /usr/local/bin/composer update
WP CLIのComposer構成で、通常はpreferred-install
で "dist"
を~/.wp-cli/packages/composer.json
に設定してみてください。
php -d memory_limit = 5G composer.pharアップデート
Laravel/Homestead(Vagrant Windows)で解決しました
1)Homestead.yamlを編集し、メモリを2048から4096に増やします
2)浮浪者
3)浮浪者ssh
4)この行を使用して、選択したフォルダーにSymfonyをインストールします(ファイルなしである必要があります)
COMPOSER_MEMORY_LIMIT=-1 composer create-project symfony/website-skeleton . -s dev
composer self-update
とcomposer clearcache
を実行し、ベンダーとcomposer.lockを削除してローカル環境を再起動してからphp -d memory_limit=-1 /usr/local/bin/composer install
を実行します