PHP out of memory error does not reflect memory_limit setting in php.ini

你离开我真会死。 提交于 2019-12-11 06:08:39

问题


When I try to install a package to Contao using the Composer client I get an error:

Fatal error: Allowed memory size of 1073741824 bytes exhausted (tried to allocate 134217728 bytes) in phar://D:/wamp/www/myproject/composer/composer.phar/src/Composer/DependencyResolver/Solver.php on line 220

I am really confused. My PHP memory limit is set at 512M. phpinfo() confirms it. But 1073741824 is a gigabyte! And it still isn't enough, as if the script totally disregards the PHP memory limit (where?) and even a gigabyte isn't enough!?!?

What can I do? I read about RLimitMEM, but I can not find such a setting anywhere on WAMPServer.


回答1:


It is recommended to use the so called detached mode for the composer client. If you have a proper CLI environment available, you'll have no memory limit and no maximum execution time. Also both of these limits can be controlled via command line arguments.

However, this does not work in all hosting environments. See this Wiki entry for more details: https://github.com/contao-community-alliance/composer-client/wiki/Execution-modes




回答2:


I found the answer.

I searched the project for memory_limit and found out, that the composer client attempts to set a memory limit in system/modules/!composer/src/Runtime.php There is this line: @ini_set('memory_limit', '1024M'); I changed it to @ini_set('memory_limit', '2048M'); essentially doubling the available memory, and it worked.



来源:https://stackoverflow.com/questions/41861627/php-out-of-memory-error-does-not-reflect-memory-limit-setting-in-php-ini

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!