使用 xampp 时如何设置 PHP CLI 的内存限制

问题描述 投票:0回答:3

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

第 0 行未知,允许的内存大小 262144 字节已耗尽(尝试分配 341351 字节)

我可以通过调用

php -d  memory_limit=2048M
script.php

来解决这个问题

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

php command-line-interface
3个回答
10
投票

由于 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
参数,或专用的start-up脚本:

php -d memory_limit=512M myphpProg

4
投票

将其添加到 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
投票

xampp 中 CLI 的默认 php.ini 文件位于

%xamppRoot%\php\php.ini
中,而不是位于
%xamppRoot%\apache\bin\php.ini

© www.soinside.com 2019 - 2024. All rights reserved.