【问题标题】:How do I set the memory_limit for PHP CLI when using xampp使用 xampp 时如何设置 PHP CLI 的 memory_limit
【发布时间】:2017-04-21 17:43:01
【问题描述】:

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

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

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

但不知道如何处理作曲家。

【问题讨论】:

  • PHP 有时为 CLI 和 Web 服务器使用不同的 php.ini 文件。使用 php -i 找出它在 CLI 上加载的 php.ini 文件,并在那里设置您的 memory_limit。正在使用的 ini 应该在输出的开头附近。
  • 正如其他人所说,我总是遇到此错误,通过将其设置为 -1 来增加您的内存限制,然后执行您正在执行的操作,并在完成后将其更改回更合理的值。跨度>
  • 哦,还要确保您以 whm 中的 root 用户身份更改系统值,因为 cpanel 用户不允许您覆盖更多内容

标签: php command-line-interface


【解决方案1】:

由于 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

为了更好地理解 shebangs 脚本,执行上述操作类似于从解释器运行相同的文件

php -d memory_limit=512M myphpProg

【讨论】:

    【解决方案2】:

    在你的 PHP 代码的最顶部添加这个 ini_set("memory_limit", "2048M"); 在您的 PHP 脚本中。请务必根据需要增加memory_limit

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

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

    注意:另外请确保您是否在生产环境中使用 PHP 脚本执行某些操作,该脚本的工作是继续向该脚本添加数据,无论是在您的静态变量中(示例: gathering multiple CSV's data) 或一些数组,那么在内存完全耗尽的情况下,它可能导致该 VM 或 PHP 进程失败。

    【讨论】:

      【解决方案3】:

      xampp 中 CLI 的默认 php.ini 文件位于 %xamppRoot%\php\php.ini 而非 %xamppRoot%\apache\bin\php.ini 下

      【讨论】:

        猜你喜欢
        • 2011-10-31
        • 1970-01-01
        • 2015-06-02
        • 1970-01-01
        • 1970-01-01
        • 2014-03-28
        • 2011-04-08
        • 2020-06-14
        • 2022-01-14
        相关资源
        最近更新 更多