我尝试在 php.ini 中设置限制,但总是遇到相同的错误:
第 0 行未知,允许的内存大小 262144 字节已耗尽(尝试分配 341351 字节)
我可以通过调用
php -d memory_limit=2048M
script.php 来解决这个问题
但不知道如何处理作曲家。
由于 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
将其添加到 PHP 代码的最顶部 PHP 脚本中的
ini_set("memory_limit", "2048M");
。确保根据您的需要增加memory_limit
。
如果您不断收到此类
exhausted memory
的错误消息。你可以使用ini_set("memory_limit", "-1");
。这会将您的内存限制设置为无限制。
注意: 这会将您的内存限制设置为无限制。内存限制取决于您的
和OS
,而不是RAM
。PHP
注意: 另外请确保您是否在 PHP 脚本中在生产环境中执行某些操作,其工作是继续向脚本添加数据,无论是在静态变量中(示例:
)还是某些数组,那么在内存完全耗尽的情况下,可能会导致该 VM 或 PHP 进程失败。gathering multiple CSV's data
xampp 中 CLI 的默认 php.ini 文件位于
%xamppRoot%\php\php.ini
中,而不是位于 %xamppRoot%\apache\bin\php.ini
下