使用xampp时,如何为PHP CLI设置memory_limit

时间:2017-04-21 17:43:02

标签: php command-line-interface

我已经尝试在php.ini中设置限制,但我总是得到同样的错误:

第0行的Unknown中允许的内存大小为262144字节(尝试分配341351字节)

我可以通过调用php -d memory_limit=2048M script.php

来解决这个问题

但无法弄清楚如何处理作曲家。

3 个答案:

答案 0 :(得分:1)

xampp中CLI的默认php.ini文件位于%xamppRoot%\ php \ php.ini中,不在%xamppRoot%\ apache \ bin \ php.ini

答案 1 :(得分:0)

在PHP代码的最顶层添加此项 PHP脚本中的ini_set("memory_limit", "2048M");。请务必根据需要增加memory_limit

如果您继续收到exhausted memory的此类错误消息。你可以使用ini_set("memory_limit", "-1");。这会将您的内存限制设置为无限制。

  

注意:这会将您的内存限制设置为无限制。内存限制取决于您的OSRAM而不是PHP

     

注意:另外请确保您在PHP脚本中的生产环境中做了些什么,其作用是继续在静态变量中向脚本添加数据(示例: gathering multiple CSV's data)或某些数组,如果内存耗尽,可能会导致该VM或PHP进程失败。

答案 2 :(得分:0)

由于php-cli具有不同的ini文件,因此通常会导致配置错误。

对于«unix shebang»php bash脚本,我们可以做的就是直接在shebang行上即时设置ini键,如下所示:

#!/usr/bin/php -d memory_limit=512M
<?php
phpinfo();
exit;

然后使用phpinfo()查看php是否理解:

./myphpProg | grep memory

正确的shell输出应包含:

memory_limit => 512M => 512M

为了更好地了解shebangs脚本,执行上述操作类似于使用php扩展名运行同一文件:

  

php -d memory_limit = 512M myphpProg。 php

这就是为什么我们只能以这种方式设置一个ini值的原因,因为php一次仅接受一个 -d 参数。