sourcecode

Composer 업데이트 메모리 제한

copyscript 2023. 1. 20. 16:14
반응형

Composer 업데이트 메모리 제한

호스팅에서 composer update를 실행해야 하므로 ssh로 로그인하고 Larabel 및 composer가 설치되어 있는 /www 폴더 내에서 다음 명령을 실행해 봅니다.

composer update

다음의 에러가 표시됩니다.

여기에 이미지 설명 입력

호스팅 프로바이더와 연락하고 있는데 다음 명령을 실행하라고 합니다.

php -d memory_limit=512M composer update

이 명령을 실행했지만 "파일을 열 수 없습니다: composer"라는 메시지가 표시됨

무엇을 해야 하나?여기서의 해결책은 무엇입니까?

필요한 만큼의 메모리를 사용하도록 설정합니다.

COMPOSER_MEMORY_LIMIT=-1 composer update

composer updateOS는 설정된 경로를 조사하고 해당 이름의 실행 파일을 검색합니다.

" " 를 실행하고 php composer update , . . . . . . . .composer문자열은 어떤 경로에서도 검색되지 않는 PHP의 매개 변수로 취급됩니다.실행하려면 전체 경로를 제공해야 합니다.

.which composerOS가 Composer 실행 가능 파일을 찾은 위치를 알려준 다음 PHP 명령에서 전체 경로를 사용합니다.

$>which composer
/usr/local/bin/composer

$>php -d memory_limit=512M /usr/local/bin/composer update
...

을 수 .512MB를 사용하다Symfony를 수~2.3 Composer가 Composer를 사용하는 보다 훨씬 더을 Composer가 수 합니다.~2.7.

또한 운영 시스템에서 Composer를 실행하는 것은 권장되지 않습니다.Github에 액세스하거나 액세스 자격 증명을 제공하고 VCS 도구를 설치해야 합니다. 업데이트 중에 오프라인인 원격 호스팅 서버가 있으면 사이트가 쉽게 중단됩니다.Composer는 모든 준비를 마친 다음 모든 파일을 프로덕션 서버로 이동하는 배포 시스템에서 사용하는 것이 좋습니다.

갱신하다

지금은 2020년이고 Composer의 메모리 관리 방식은 많이 바뀌었습니다.가장 중요한 것은 Composer가 메모리 제한을 너무 낮게 설정하면 자동으로 메모리 제한을 늘리는 것입니다.다만, 이것에 의해, 메모리가 너무 적은 머신의 메모리 부족의 문제가 곧바로 트리거 됩니다.Composer는 Composer라는 를 설정함으로써 을 줄일 수 .COMPOSER_MEMORY_LIMIT=512M Composer가 동작하기 위해 가 필요한 문제가

내 요점은 여전히 사실이다.메모리가 너무 적은 시스템에서는 Composer를 실행하지 마십시오.모든 것을 업데이트하려면 1.5GB의 빈 메모리가 필요할 수 있습니다.

나에게 가장 좋은 해결책은

COMPOSER_MEMORY_LIMIT=-1 composer require <package-name>

@realtebo에 의해 언급되다

Composer가 사용 가능한 메모리를 모두 소비하고 프로세스가 중단되기 때문에 Composer에 문제가 있습니다(실제로 출력 메시지는 "Killed"입니다).

그래서 작곡가의 메모리 사용량을 제한할 수 있는 방법을 찾고 있었습니다.

(@Sven answers에서) 시도했습니다.

$ php -d memory_limit=512M /usr/local/bin/composer update

근데 안 되더라고요.

memory_limit은 내부적으로 1.5G로 증가합니다.

-> 그것은 유익한 웹사이트의 작성자가 보낸 것입니다.

그 후 동작하는 명령어를 찾았습니다.

$ COMPOSER_MEMORY_LIMIT=512M php composer.phar update

그래도 내 경우 512MB로는 충분치 않아!

출처 : https://www.agileana.com/blog/composer-memory-limit-troubleshooting/

는 합칠 수 밖에 없었다.COMPOSER_MEMORY_LIMIT ★★★★★★★★★★★★★★★★★」memory_limit명령줄에서 다음을 수행합니다.

Windows 의 경우:

set COMPOSER_MEMORY_LIMIT=99999999999&& php -d memory_limit=-1 composer.phar update

Linux의 경우:

export COMPOSER_MEMORY_LIMIT=99999999999 && php -d memory_limit=-1 composer.phar update

메모리 용량이 충분하면 내부에서 메모리를 소비하고 문제없이 실행할 수 있습니다.작곡가에게 특별히 지시할 필요는 없습니다.

스와프 메모리를 늘려본 적이 있습니까?그것은 나에게 효과가 있었기 때문입니다.스왑 메모리를 4096Mb(4GB)로 늘렸더니 모든 것이 좋아 보입니다.

번째사용법은 '일부러'입니다.sudo free, 을 「스왑으로 설정합니다.

Debian의 경우:

sudo fallocate -l 4G /swapfile
sudo dd if=/dev/zero of=/swapfile bs=4096k count=1048
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

파일인 /etc/fstab에 추가합니다./swapfile swap swap defaults 0 0

센트의 경우OS:

[root@myserver]:/# cd /var
[root@myserver]:/var# touch swap.img
[root@myserver]:/var# chmod 600 swap.img
[root@myserver]:/var# mkswap /var/swap.img

[root@myserver]:/var# dd if=/dev/zero of=/var/swap.img bs=4096k count=1000
[root@myserver]:/var# mkswap /var/swap.img 
[root@myserver]:/var# swapon /var/swap.img

물리적 볼륨 크기에 따라 bs= 1024k, 2048k 또는 8096k를 변경하여 스왑 메모리를 늘릴 수 있습니다.차이를 확인하려면 'swapoff' 및 'swapoff' 명령을 사용합니다.

'swappiness' 체크(60이면 충분합니다)

cat /proc/sys/vm/swappiness

바꿀 수 요.memory_limit.ini의 값을 합니다.

php.ini 파일의 제한을 늘려보세요.

무제한에 -1을 사용하거나 2G와 같은 명시적 값을 정의합니다.

memory_limit = -1

주의: Composer는 내부적으로 memory_limit을 1.5G로 늘립니다.

매뉴얼을 참조하십시오.getcomposer.org

Windows 10에서 만들고 함께 작업했습니다.

php -d memory_limit=-1 C:/ProgramData/ComposerSetup/bin/composer.phar update

원하는 xx 값을 변경할 수 있습니다.

 memory_limit=XX

MAC OS High Siera에서 다음을 실행합니다.

MacBook-Pro:asiu jack$ php --ini

반환:

Configuration File (php.ini) Path: /usr/local/etc/php/7.4
Loaded Configuration File:         /usr/local/etc/php/7.4/php.ini
Scan for additional .ini files in: /usr/local/etc/php/7.4/conf.d
Additional .ini files parsed:      /usr/local/etc/php/7.4/conf.d/ext- 
opcache.ini,
/usr/local/etc/php/7.4/conf.d/php-memory-limits.ini

위의 답변은 모두 로드된 구성을 설정하고 있습니다.다만, 해석된 추가 .ini 파일에는 php-memory-limits.ini 가 다른 파일로 포함되어 있습니다.이 파일 구성 제한도 업데이트해야 합니다. 텍스트 편집기에서 같은 방식으로 열고 2G와 같은 방식으로 변경해야 합니다.메모리 제한 장애 출력에 필요한 메모리 용량이 표시됩니다.그보다 높은 메모리 용량으로 설정하거나 무제한의 경우는 -1로 설정합니다.

이 오류는 특히 종속성이 많은 대규모 라이브러리 또는 라이브러리를 업데이트할 때 발생할 수 있습니다.작곡가는 기억력에 굶주릴 수 있다.

컴포저 자체가 최신 버전으로 업데이트되었는지 확인합니다.

php composer.phar --self-update

composer 메모리 제한 환경 변수를 추가하여 composer의 메모리 제한을 일시적으로 늘릴 수 있습니다.

COMPOSER_MEMORY_LIMIT=128MB php composer.phar update

메가바이트의 경우 "128M", 기가바이트의 경우 "2G" 형식을 사용합니다."-1" 값을 사용하여 메모리 제한을 완전히 무시할 수 있습니다.

또 다른 방법은 PHP 메모리 제한을 늘리는 것입니다.

php -d memory_limit=512M composer.phar update ...
<C:\>set COMPOSER_MEMORY_LIMIT=-1
<C:\>composer install exhausted/packages
COMPOSER_MEMORY_LIMIT=-1 composer update --ignore-platform-reqs

사용하시는 aws 서버의 크기는 어떻게 됩니까?RAM이 1GB밖에 없는 경우 php.ini에서 메모리 제한을 2GB로 설정해도 도움이 되지 않습니다.

사용 가능한 RAM을 늘리기 위해 서버 측도 늘릴 수 없거나 필요하지 않은 경우 스왑을 활성화할 수도 있습니다.

스왑을 유효하게 하는 방법에 대해서는, 여기를 참조해 주세요.4GB를 사용할 수 있지만, 보통은 1GB밖에 사용하지 않습니다.

출처: laracast 사이트에서 취득.

홈스테드에서 라라벨6를 운영하고 있는데 이 문제도 발생했어요.에 '하다'를 붙일 수 .COMPOSER_MEMORY_LIMIT=-1명령어를 1개만 실행하고 정상적으로 명령어를 실행합니다.항상 무제한 메모리를 허용하도록 PHP 구성을 업데이트하려면 다음 단계를 따르십시오.

vagrant up
vagrant ssh
php --version # 7.4
php --ini # Shows path to the php.ini file that's loaded
cd /etc/php/7.4/cli # your PHP version. Each PHP version has a folder
sudo vi php.ini

memory_limit=-1php.ini 파일로 이동합니다.Vim을 사용하거나 php.ini 파일을 편집하는 데 문제가 있는 경우 Vim을 사용하여 php.ini 파일을 편집하는 방법에 대해 다음 답변을 참조하십시오.파일은 다음과 같습니다.

; Maximum amount of memory a script may consume
; http://php.net/memory-limit
memory_limit = -1

이로 인해 시스템의 메모리가 무한히 소모될 수 있습니다.아마 제작에 좋은 생각은 아닐 거야. lol.Laravel Valet에서는 다음 문서에 따라 메모리 값을 업데이트해야 했습니다.

sudo vi /usr/local/etc/php/7.4/conf.d/php-memory-limits.ini

그런 다음 Valet을 사용하여 서버를 재시작합니다.

valet restart

이 답변은 Mac에서 Laravel Valet을 사용하여 설정을 변경한 경우에도 도움이 되었습니다.

라라벨 홈스테드를 이용하시는 분들을 위해

을 이이에 써주세요.Homestead.yaml

variables:
    - key: COMPOSER_MEMORY_LIMIT
      value: -1

라라벨의 경우

1단계. 단말기를 엽니다.

2. 스 2cd(laravel에

는 명령어를 입력합니다.which composer를 larabel 디렉토리에 저장하고 컴포저가 있는 디렉토리를 적어 둡니다.

4. 실행 4. 명령어 실행.php -d memory_limit=-1 /opt/cpanel/bin/composer update할 수도 있습니다 (코드 실행이 가능합니다.)

(변화)/opt/cpanel/bin/composer합니다).

문제는 해결됐습니다.

내 경우에는 어떤 대답도 도움이 되지 않았다.결국 64비트 버전의 PHP(M$ Windows)로 변경하면 문제가 즉시 해결되었습니다.설정은 변경하지 않았습니다.그냥 동작했습니다.

  • 집으로 가세요.php ini
  • 설정하다memory_limit = -1

Windows 10(Git bash)에서는, 이것을 사용할 필요가 있었습니다.

php -d memory_limit=-1 C:\\composer\\composer.phar install

이후 작곡가 버전에서 수정되었습니다.Windows 에서는, 작곡가를 언인스톨 하고 나서, 최신 버전을 다운로드해 인스톨 할 필요가 있었습니다.https://getcomposer.org/download/

실행 중입니다.composer update가 있다

먼저 composer 업데이트를 시도합니다.

composer self-update

어떤 이유로 composer v1.0이 정상적으로 동작하지 않습니다.이 경우 composer를 업데이트해야 다음 작업을 수행할 수 있습니다.

composer update

제 경우 메모리 제한 증가와 함께 더 높은 권한이 필요했습니다.

sudo COMPOSER_MEMORY_LIMIT=2G php /opt/bitnami/php/bin/composer.phar update

언급URL : https://stackoverflow.com/questions/36107400/composer-update-memory-limit

반응형