composer를 사용하여 설치하는 동안 메모리 시스템 오류가 발생한 이야기
목적
구현 환경
품목
정보
OS
macOS Catalina(10.15.5)
하드웨어
MacBook Pro (13-inch, 2020, Four Thunderbolt 3 ports)
프로세서
2GHz 쿼드 코어Intel Core i5
메모리
32GB 3733MHz LPDDR4
그래픽
Intel Iris Plus Graphics 1536 MB
품목
정보
비고
AWS EC2 인스턴스
AmazonLinux2
이 방법을 사용하여 이미지에서 인스턴스 만들기 → AWS EC2를 Mac에서 사용해 봅시다!
PHP
7.4.5
이 방법으로 설치 → AWS EC2 AmazonLinux2 PHP 설치
composer
1.10.7
이 방법으로 설치 → AWS EC2 AmazonLinux2 composer 설치
독후감
문제까지의 경위
아래 명령을 실행하여 Laravel을 설치하려고했습니다.
$ composer global require laravel/installer
문제
아래와 같은 에러가 발생해 composer 인스톨을 실시할 수 없다.
The following exception is caused by a lack of memory or swap, or not having swap configured
오류의 전체 텍스트는 아래에 설명되어 있습니다.
$ composer global require laravel/installer
Changed current directory to /home/ec2-user/.config/composer
Using version ^3.1 for laravel/installer
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 20 installs, 0 updates, 0 removals
- Installing symfony/polyfill-php80 (v1.17.0): Downloading (100%)
proc_open(): fork failed - Cannot allocate memory
The archive may contain identical file names with different capitalization (which fails on case insensitive filesystems)
Unzip with unzip command failed, falling back to ZipArchive class
Installation failed, reverting ./composer.json to its original content.
The following exception is caused by a lack of memory or swap, or not having swap configured
Check https://getcomposer.org/doc/articles/troubleshooting.md#proc-open-fork-failed-errors for details
The following exception is caused by a lack of memory or swap, or not having swap configured
Check https://getcomposer.org/doc/articles/troubleshooting.md#proc-open-fork-failed-errors for details
PHP Warning: proc_open(): fork failed - Cannot allocate memory in phar:///usr/local/bin/composer/vendor/symfony/console/Application.php on line 952
Warning: proc_open(): fork failed - Cannot allocate memory in phar:///usr/local/bin/composer/vendor/symfony/console/Application.php on line 952
[ErrorException]
proc_open(): fork failed - Cannot allocate memory
require [--dev] [--prefer-source] [--prefer-dist] [--fixed] [--no-progress] [--no-suggest] [--no-update] [--no-scripts] [--update-no-dev] [--update-with-dependencies] [--update-with-all-dependencies] [--ignore-platform-reqs] [--prefer-stable] [--prefer-lowest] [--sort-packages] [-o|--optimize-autoloader] [-a|--classmap-authoritative] [--apcu-autoloader] [--] [<packages>]...
문제 해결까지의 경위
에러문에 기재되어 있는 링크를 열람해 본다.
어쨌든 오류에 대한 해결 방법에 대한 설명이있었습니다.
다음 명령을 실행하여 현재 스왑 영역을 확인합니다.
$ free -m
다음과 같이 출력되었다. 스왑 영역 할당이 0이 되어 버리는 것이 원인인 것 같다.
$ free -m
total used free shared buff/cache available
Mem: 983 378 465 0 139 465
Swap: 0 0 0
다음 명령을 실행하여 스왑 영역을 설정합니다. (
/bin/dd: failed to open ‘/var/swap.1’: Text file busy
라고 출력되어 버린 분은 AWS의 EC2 콘솔보다 일단 인스턴스를 재기동한다.Linux의 물리 머신으로 실시중의 분도 Linux 물리 머신을 재기동한다.※인스턴스 재기동 후에는 ssh 접속 명령이 변경되므로주의하십시오.)$ sudo /bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024
$ sudo /sbin/mkswap /var/swap.1
$ sudo /sbin/swapon /var/swap.1
참고문헌
Reference
이 문제에 관하여(composer를 사용하여 설치하는 동안 메모리 시스템 오류가 발생한 이야기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/miriwo/items/52e1961b95babbd01bfa텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)