Magento 2 Allowed Memory exhausted error when compile code
Problem:
I have error when i add module..
Please re-run Magento compile command
so i run below command but also display error that below when run command from root,
php magento setup:di:compile
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
Solution 1:
A quick solution for memory limit in Magento 2 command is directly adding memory limit inside command.
For Compilation command,
php -dmemory_limit=5G bin/magento setup:di:compile
For Deployment
php -dmemory_limit=5G bin/magento setup:static-content:deploy
You can change as per 5G to max if issue not resolve.
Solution 2:
If you are using PHP >= 5.3.0 and you used the Magento 2.1.x and above, then after you run composer install
, two files will be created in your root directory and your pub directory named .user.ini
Edit those files to override your PHP.ini settings, in this case is the memory_limit
; Set PHP memory limit to 768M which already enough for compilation tasks
memory_limit = 768M
max_execution_time = 18000
If you are using Apache, you will need to care the files inside root directory only, not the /pub
one and vice versa if you are using engineX (nginx)
Hope it helps.