코드를 컴파일 할 때 Magento 2 허용 메모리 소진 오류


28

모듈을 추가 할 때 오류가 발생했습니다 ..

Magento 컴파일 명령을 다시 실행하십시오

그래서 아래 명령을 실행하지만 루트에서 명령을 실행할 때 아래에 오류가 표시됩니다.

PHP 마 젠토 설정 : 디 : 컴파일

Compilation was started.
%message% 0/7 [>---------------------------]   0% 1 sec 37.0 MiB%message% 0/7 [>
---------------------------]   0% 1 sec 37.0 MiBProxies code generation... 0/7 [
>---------------------------]   0% 1 sec 37.0 MiB
Proxies code generation... 1/7 [====>-----------------------]  14% 47 secs 43.5
MiB
Repositories code generation... 1/7 [====>-----------------------]  14% 47 secs
43.5 MiB
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate
 24 bytes) in D:\xampp\htdocs\linsenwelt\vendor\zendframework\zend-code\src\Scan
ner\FileScanner.php on line 36

어떻게 고치는 지 ?


라이브 서버에서 동일한 오류가 발생합니다
— SIBHI S

답변:


72

Magento 2 명령의 메모리 제한에 대한 빠른 해결책은 명령 내에 메모리 제한을 직접 추가하는 것입니다.

컴파일 명령의 경우

php -dmemory_limit=5G bin/magento setup:di:compile

배포 용

php -dmemory_limit=5G bin/magento setup:static-content:deploy

문제가 해결되지 않으면 5G에 따라 최대로 변경할 수 있습니다.


1
@rakesh 감사합니다 그것은 내 시간을 절약 다시 한번 감사합니다
— Nagaraju K

1
메모리 제한을 늘리는 것은 일시적인 해결책 일 수 있습니다.
— Macas

8

cli에 128MB의 메모리 만 할당 된 것 같습니다. 가능하면 값을 최소 256MB 또는 512MB로 늘리십시오.


내 php.ini 파일에 512MB 크기를 시도했지만 여전히 작동하지 않습니다 ... 어떻게 해결합니까?
— Khushbu Mehta

여전히 얻는 Allowed memory size of 134217728 bytes다면 cli에 대한 메모리 제한을 늘리지 않았습니다.
— Marius

어느 파일에서 메모리 제한을 설정 했습니까 ??
— Khushbu Mehta

8

이 '더러운'방법을 사용하십시오

php -dmemory_limit=-1 bin/magento setup:di:compile


5

PHP> = 5.3.0을 사용하고 Magento 2.1.x 이상을 사용한 경우을 실행하면 composer install루트 디렉토리와 pub 디렉토리에 두 개의 파일이 생성됩니다..user.ini

PHP.ini 설정을 무시하도록 해당 파일을 편집하십시오.이 경우 memory_limit

; Set PHP memory limit to 768M which already enough for compilation tasks
memory_limit = 768M
max_execution_time = 18000

Apache를 사용하는 /pub경우 engineX (nginx)를 사용하는 경우 루트 디렉토리 내부의 파일 만 관리해야 하며 그 반대의 경우도 마찬가지입니다.

도움이 되길 바랍니다.


3

PHP에 할당 된 메모리를 늘려야합니다. 메모리를 늘리려면 command를 실행하십시오 php --ini. 찾기는 php.ini를로드했습니다. 그것은 같아야

Configuration File (php.ini) Path: /etc/php5/cli
Loaded Configuration File:         /etc/php5/cli/php.ini
Scan for additional .ini files in: /etc/php5/cli/conf.d
Additional .ini files parsed:      /etc/php5/cli/conf.d/05-opcache.ini,

현재로드 된 php.ini (/etc/php5/cli/php.ini)로 이동하여 memory_limit 매개 변수를 찾으십시오. memory_limit 매개 변수의 값을 256M 또는 512M으로 늘리십시오.


3

이 상황은 방금 수행하기 때문에 디버그하기 까다로울 수 있습니다

php -r "echo ini_get('memory_limit').PHP_EOL;"

경로에 PHP의 메모리 제한이 표시됩니다. 그러나 magento 스크립트 (bin / magento)는 프리앰블을 사용합니다.

#!/usr/bin/env php

따라서 반드시 경로에서 PHP를 사용하는 것은 아닙니다! php.ini사용중인 파일 을 추적하는 한 가지 방법 은 다음과 같은 작은 스크립트를 작성하는 것입니다.

#!/usr/bin/env php
<?php
phpinfo();

그것을 호출하십시오 getinfo( getinfo.php! 아님), 실행 가능하게 만든 다음 다음과 같이 실행하십시오

./getinfo  | grep php.ini

변경해야 할 ini 파일이 표시됩니다. 해당 파일 memory_limit에서 다른 게시물에서 제안한 구성 값 을 128M보다 높은 값으로 변경하십시오 . 그런 다음 파일을 저장하고 작업을 확인하십시오.

./getinfo  | grep memory_limit

2

비슷한 문제가 발생했습니다 .php ini 파일에서 메모리 제한이 2Gb로 증가했으며 phpinfo () 파일이 2Gb로 설정되었음을 보여줍니다. Magento가 메모리 제한을 수동으로 설정 한 것 같습니다. 파일 저장소 / 마 젠토 내에서 메모리 제한을 늘 렸습니다. 첫 번째 줄에 나는 이것을 넣었다.

ini_set('memory_limit', '656M');

그것이 작동하게 만들었습니다.


2

내 질문에 대한 해결책이 있습니다. 메모리 소진 오류의 경우 컴파일 코드에 대한 메모리 제한을 추가해야합니다.

php -dmemory_limit=4G bin/magento setup:di:compile

앞으로 누군가를 도울 수 있기를 바랍니다.


0

php/bin magento -d memory_limit=5G s:d:c 컴파일 코드 다음 줄을 사용하십시오. 이것은 PHP에 허용되는 메모리 제한 때문입니다. 그러나 명령에서 메모리 제한을 허용하면 오류가 제거되고 컴파일 및 기타 명령이 오류없이 실행됩니다.
-d memory_limit=5G 위 예제에서 보듯 이 모든 명령 에 이것을 추가하십시오 . 내 대답이 유용하다고 생각되면 공감하십시오.


0

"-d memory_limit = 5G"를 사용한 컴파일은 현명한 결정이 아닙니다. 모드 전환 프로세스 중에 개발자에서 프로덕션으로 영향을받을 수있는 임시 솔루션입니다. 이번에는 시스템이 오류를 발생시키는이 논리 "-d memory_limit = 5G"없이 코드를 컴파일합니다.

이 단계에서이 오류를 해결하는 것이 더 좋습니다. 이 문제를 해결하려면 php.ini를 열고 memory_limit를 1024M 늘리고 컴파일 명령 php bin / magento setup : di : compile을 실행하십시오.

이것을 확인하십시오 : https://getcomposer.org/doc/articles/troubleshooting.md#memory-limit-errors

이번에는 작동합니다


0

Cli 에서이 문제에 직면하고 있다면이 명령을 트레이하십시오.

php -dmemory_limit = 8G bin / magento 설정 : 업그레이드


0

M2의 경우 아래 명령으로 ssh를 통해 메모리 제한을 추가하십시오.

컴파일 명령 : php -dmemory_limit=5G bin/magento setup:di:compile deploy 명령 : php -dmemory_limit=5G bin/magento setup:static-content:deploy

문제가 해결되지 않으면 5G 값을 늘릴 수 있습니다.


0

67

Magento 2 명령의 메모리 제한에 대한 빠른 해결책은 명령 내에 메모리 제한을 직접 추가하는 것입니다.

컴파일 명령의 경우

php -dmemory_limit = 5G bin / magento setup : di : compile 배포

php -dmemory_limit = 5G bin / magento setup : static-content : deploy 문제가 해결되지 않으면 5G에 따라 최대로 변경할 수 있습니다.

정말 작동합니다 :)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.