PHP内存不足错误并不反映php.ini中的memory_limit设置

时间:2017-01-25 21:05:03

标签: php composer-php wampserver contao

当我尝试使用Composer客户端向Contao安装软件包时,出现错误:

  

致命错误:在phar:// D:/wamp/www/myproject/composer/composer.phar/src/Composer/DependencyResolver/Solver.php上,允许的内存大小为1073741824字节(尝试分配134217728字节)第220行

真的困惑。我的PHP内存限制设置为512M。 phpinfo()确认了这一点。但是1073741824是一个千兆字节!它仍然是不够的,好像脚本完全无视PHP内存限制(在哪里?)甚至一个千兆字节是不够的!?!?

我该怎么办?我读到了关于RLimitMEM的内容,但我无法在WAMPServer的任何地方找到这样的设置。

2 个答案:

答案 0 :(得分:1)

建议对composer客户端使用所谓的分离模式。如果您有适当的CLI环境,则内存限制和最长执行时间。此外,这两个限制都可以通过命令行参数进行控制。

但是,这不适用于所有托管环境。有关详细信息,请参阅此Wiki条目:https://github.com/contao-community-alliance/composer-client/wiki/Execution-modes

答案 1 :(得分:0)

我找到了答案。

我在项目中搜索memory_limit并发现,作曲家客户端尝试在system/modules/!composer/src/Runtime.php中设置内存限制。有这一行:@ini_set('memory_limit', '1024M');我将其更改为{{1}基本上将可用内存加倍,并且它有效。