我已经尝试在php.ini中设置限制,但我总是得到同样的错误:
第0行的Unknown中允许的内存大小为262144字节(尝试分配341351字节)
我可以通过调用php -d memory_limit=2048M
script.php
但无法弄清楚如何处理作曲家。
答案 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");
。这会将您的内存限制设置为无限制。
注意:这会将您的内存限制设置为无限制。内存限制取决于您的
OS
和RAM
而不是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 参数。