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

新手上路,请多包涵

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

允许的内存大小为 262144 字节耗尽(尝试分配 341351 字节)在 Unknown on line 0

我可以通过调用 php -d memory_limit=2048M script.php 来解决这个问题

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

原文由 Jon Diamond 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 749
2 个回答

在您的 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 进程失败。

原文由 Sahil Gulati 发布,翻译遵循 CC BY-SA 4.0 许可协议

由于 PHP-CLI 有不同的 ini 文件,这通常会导致配置错误。

对于 « unix shebang » PHP shell 脚本,我们可以做的是直接在 shebang 行上动态设置 ini 键,如下所示:

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

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

 ./myphpProg | grep memory

正确的 shell 输出应该包含:

 memory_limit => 512M => 512M

man php

-d foo[=bar] Define INI entry foo with value bar


在不使用 Unix shebang 机制的情况下,我们可以类似地在命令行或专用 启动 脚本中传递一个(或多个) -d 参数:

 php -d memory_limit=512M myphpProg

原文由 NVRM 发布,翻译遵循 CC BY-SA 4.0 许可协议

推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏