虽然没有达到内存限制,但PHP内存已耗尽

时间:2011-03-08 09:27:40

标签: php

我正在调试一个php脚本。 我将memory_limit设置为64M,它确认了这一点:

ini_set("memory_limit","64M");
echo "starting script with ".ini_get("memory_limit")."Bytes of ram\n"; \\64

但是,脚本仅使用20M就会中断,从而导致标准内存耗尽错误。

Fatal error: Allowed memory size of 20971520 byte exhausted

有可能我没想到吗? 也许Apache正在为PHP设置一些东西?

2 个答案:

答案 0 :(得分:4)

最好尝试这种无限的记忆:

ini_set("memory_limit",-1)

答案 1 :(得分:3)

您的服务器上可能已启用safe_mode - 如果是这样,则无法使用ini_set()更改许多设置。请看看你的php.ini并检查一下。

编辑:如果直接在php.ini中更改memory_limit的值并重新启动/重新加载您的apache(或其他),会发生什么?它在那种情况下有效吗?

EDIT2 对wuschelhases发表评论:

  • 你改变php.ini后重启了apache吗?你真的确定你改变了正确的php.ini(可能不只有一个)吗?
  • 你的运行操作系统是什么(这是一个linux-server,windows-server还是windows-home-pc上的简单xampp安装)?
  • phpinfo()对内存限制的评价是什么?