「Amazon Linux2」で「Laravel」のプロジェクトを作成しようとした際に、以下のようなエラーが発生して作成できないことがあります。
$ composer create-project --prefer-dist laravel/laravel dev
Installing laravel/laravel (v6.0.2)
・・・・・
mmap() failed: [12] Cannot allocate memory
PHP Fatal error: Out of memory (allocated 476061696) (tried to allocate 4096 bytes) in
このようなエラーが発生した場合は、swap領域を拡張することで解決できる場合があります。
現在のswap領域を確認する
$ free -m
total used free shared buff/cache available
Mem: 985 434 468 2 81 432
Swap: 0 0 0
swap領域は「0」であることが確認できます。
swap用のファイルを作成します
ここでは1GBの領域を確保します。必要に応じて容量を増減させてください。(2GBの場合は count=2048)
$ sudo /bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024
1024+0 レコード入力
1024+0 レコード出力
1073741824 バイト (1.1 GB) コピーされました、 1.05558 秒、 1.0 GB/秒
swap用ファイルをswap領域にセット
作成したswap用ファイルをswap領域にセットします。
sudo /sbin/mkswap /var/swap.1
スワップ空間バージョン 1 を設定します。サイズ = 1024 MiB (1073737728 バイト)
ラベルはありません, UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
swap領域を有効化
以下のコマンドを実行してswap領域を有効にします。
$ sudo /sbin/swapon /var/swap.1
再度、swap領域の確認
「free」コマンドで再度swap領域を確認します。先程は「0」でしたが現在は「1023」になって拡張されたことが確認できました。
$ free -m
total used free shared buff/cache available
Mem: 985 446 68 12 470 374
Swap: 1023 0 1023
なお、拡張したswap領域は再起動するとクリアされます。swap領域を常に拡張したい場合は別途自動的に有効にさせる設定が必要になります。
それではみなさん、自由なWEBライフをお過ごしください!