0
0

More than 1 year has passed since last update.

laravel6でlaravel/uiをインストールしようとしたらmmap() failed: [12] Cannot allocate memoryとエラーが出た

Last updated at Posted at 2021-09-27

はじめてQiitaに投稿します。
間違っている箇所もあるかもしれませんので、あればご指摘どんどんよろしくお願いします!

laravel6でlaravel/uiをインストールしようとしたら予期せぬエラーに出くわしたので、備忘録も含め投稿します。

環境

  • Windows10
  • php7.4.3
  • wsl2(Ubuntu)
  • laravel 6.20.34

きっかけ

laravelでlaravel/uiをインストールしようと下記のコマンド実行

php artisan require laravel/ui "^1.0" --dev

エラー発生

下記のエラーが発生した!!なんじゃこりゃ~!?

mmap() failed: [12] Cannot allocate memory

mmap() failed: [12] Cannot allocate memory
PHP Fatal error:  Out of memory (allocated 1029541888) (tried to allocate 20480 bytes) in phar:///usr/local/bin/composer/src/Composer/Json/JsonFile.php on line 288

Fatal error: Out of memory (allocated 1029541888) (tried to allocate 20480 bytes) in phar:///usr/local/bin/composer/src/Composer/Json/JsonFile.php on line 288

原因

調べたところメモリの確保に失敗したらしい。。。

phpのメモリ上限を確認

php -i | grep memory_limit

// php -i はphp.iniの内容をコマンドラインから確認できる=>phpinfo();と同等の内容

下記が表示されてphpのメモリ使用量は無制限であることを確認

php -i | grep memory_limit
memory_limit => -1 => -1

Ubuntuのswap領域が原因の様子

参考サイトより、

Ubuntuでは標準ではswap領域が設定されていないよう

とのこと。

swap領域を確認

free -m

total        used        free      shared  buff/cache   available
Mem:           1985         509         958         401         516         942
Swap:             0           0           0

参考サイトのとおり、下記コマンドを実行

// swapの確認(初期状態だと設定なし
cat /proc/swaps
Filename                                Type            Size    Used    Priority

// 管理者権限になる
sudo su -

// swap用のディレクトリを作成
mkdir /var/swap

// 2Gのswap領域を作成
dd if=/dev/zero of=/var/swap/swap0 bs=1M count=2048

// パーミッション変更
chmod 600 /var/swap/swap0

// swap領域の割り当て
mkswap /var/swap/swap0
swapon /var/swap/swap0

// 起動時にswap領域が自動割当するように設定
echo '/var/swap/swap0 swap swap defaults 0 0' >> /etc/fstab

これで解決されたので、下記コマンドを再度実行。無事に実行完了

php artisan require laravel/ui "^1.0" --dev

参考

Ubuntu上でLaravelプロジェクトを作る

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0