Magento 2 Allowed Memory exhausted error when compile code
Problem:
I have an error when I add a module..
Please re-run the Magento compile command
so i run the below command, but also display error below when run the 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.5MiB 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 the memory limit in Magento 2 command is to directly add the memory limit inside the command.
For the 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 the issue is not resolved.
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 the root directory only, not the /pub one and vice versa if you are using engineX (nginx)
Hope it helps.