laravel6에서 laravel/ui를 설치하려고하면 mmap () failed : [12] Cannot allocate memory와 오류가 발생했습니다.

laravel6에서 laravel/ui를 설치하려고하면 mmap () failed : [12] Cannot allocate memory와 오류가 발생했습니다.

2022-10-03 last update

7 minutes reading 라라벨 우분투 PHP Laravel6 WSL2
처음 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 영역이 설정되어 있지 않게

    라는 것.

    스왑 영역 확인
    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
    

    참고



    우분투에서 Laravel 프로젝트 만들기