Linux環境でComposerを使用していて「proc_open(): fork failed errors」エラーが出た場合の対処法を説明します。
> composer update
...
PHP Fatal error: Uncaught exception 'ErrorException' with message 'proc_open(): fork failed - Cannot allocate memory' in phar
この問題はサーバがメモリ不足になって、しかも使えるSwap領域がないときに発生します。
通常ではあまり発生しませんが、gcpやAWSなどのクラウドサービスでmicroインスタンスで運用しているとき、メモリ不足でこのエラーを見ることがあります。
メモリの使用量を確認する
まずは、本当にメモリの使用状況を確認します。LinuxでメモリやSwap領域の使用状況に関する情報は、free'で確認できます。
--mega`オプション付きで実行すると各サイズがMByte単位で表示されます。
> free --mega
total used free shared buff/cached available
Mem: 15721 4403 1471 9844 10529
Swap: 7999 4661 3338
Swap領域を有効化する方法
Linux環境においてSwap領域自体がなかった場合、swap領域を作る必要があります。この場合、以下のようなコマンドを実行すればよいです。
/bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024
/sbin/mkswap /var/swap.1
/sbin/swapon /var/swap.1
不要なサービスを一時的に止める
メモリ不足が原因なので、Swapの作成などのシステム全体に影響するコマンドを実行したくない場合は、メモリを一時的に開放することで動作する場合もあります。ApacheやMySQLなどのサービスを同じサーバで実行している場合は、いったんサービスを停止させてからcomposerコマンドを実行し、再度サービスを起動させれば成功することもあります。
こちらもおススメ