Drupal 모듈을 설치하기 위해 1GB 메모리(PHP에 할당된 최대 실행 메모리는 128MB)가 있는 Linode VPS에서 Composer를 실행하면 성공적인 프롬프트가 표시되지 않고 KILLED 프롬프트만 표시됩니다.
PHP에 할당된 실행 메모리를 수정하여 PHP 메모리를 128MB에서 256MB로 늘린 후 오류 메시지가 더욱 구체적으로 표시되었습니다:
Fatal error: Out of memory (allocated 754982912) (tried to allocate 33554440 bytes) in phar:///usr/local/bin/composer/src/Composer/DependencyResolver/RuleSet.php on line 84
Added to 512MB:
Fatal error: Out of memory (allocated 832577536) (tried to allocate 16777216 bytes) in phar:///usr/local/bin/composer/src/Composer/DependencyResolver/Solver.php on line 223
Added to 768MB, 오류 메시지는 단순 KILLED가 되었습니다.
작곡가님은 식탐이 대단한 것 같아요. 무엇을 해야 할까요?
1. 가장 간단하고 투박하며 가장 효과적인 방법은 서버를 업그레이드하고 서버에 메모리를 추가하는 것입니다. 정말 가난하고 돈이 걱정된다면 작곡가를 포기하거나 곡선을 통해 나라를 구하십시오.
2. 대안은 서버에 가짜 메모리를 할당하여 서버를 속이고 SWAP 캐시에 대해 알아내는 것입니다. Big Viagra에는 다음 게시물이 있습니다. SWAP Q&A: SWAP란 무엇입니까? SWAP은 어떤 용도로 사용되나요? 스왑을 사용하는 방법?
빅 비아그라는 서버의 SWAP 캐시를 2.5GB로 늘리면 해결됩니다. 물론 가짜는 결국 가짜이고, 하드디스크로 만든 캐시는 성능 면에서 확실히 실제 메모리만큼 좋지는 않습니다.
3. Stack Overflow에서 누군가가 효과적일 수 있는 방법을 공유했지만 저는 시도해보지 않았습니다. 즉, 로컬 개발 환경에서 Composer를 실행한 후, 프로덕션 서버에 작곡가.lock 또는 git push를 업로드한 후 프로덕션 서버에서 작곡가 설치를 실행하는 것입니다.
composer 설치는 각 소프트웨어 패키지의 최신 버전을 찾는 대신 .lock 파일의 구성을 읽고 동일한 버전의 소프트웨어 패키지를 직접 가져옵니다. 이러한 방식으로 작곡가의 메모리 요구 사항이 줄어듭니다.
그러나 이 방법 자체도 매우 번거롭고 성공률도 걱정되기 때문에 가능하면 사용하지 마세요.
마지막으로 php.ini 구성 파일을 수정하지 않고 작곡가의 메모리 제한을 일시적으로 잠금 해제하는 방법을 공유하겠습니다:
php -d memory_limit=-1 /usr/local/bin/composer require/isntall/update
또는:
php -d memory_limit=-1 `which composer` require/isntall/update
위 내용은 Composer가 중단되고 Killed 문제가 표시됩니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!