PHP内存耗尽,但未达到内存限制

PHP内存耗尽,但未达到内存限制,php,Php,我目前正在调试一个php脚本。 我将内存限制设置为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 有没有一种我可能没有想到

我目前正在调试一个php脚本。 我将内存限制设置为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设置一些东西?

也许服务器上启用了
安全模式
——如果是这样,很多设置都无法使用
ini\u set()
更改。请查看您的php.ini并进行检查

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

EDIT2对wuschelhases的评论:

  • 更改php.ini后是否重新启动了apache?您是否确实更改了正确的php.ini(可能不止一个)
  • 您正在运行什么操作系统(这是linux服务器、windows服务器还是windows home pc上的简单xampp安装)
  • 关于内存限制怎么说

最好尝试以下方法以获得无限内存:

ini_set("memory_limit",-1)

请将准确的错误和显示的数字一起引用。您是否测量了内存使用情况?我问这个问题是因为memory_get_usage()和memory_get_peak_usage()函数只返回实际的内存使用情况,如果你给它传递一个布尔值
True
。“在PHP5.2.1之前,为了使用这个指令,它必须在编译时通过在配置行中使用--enable memory limit来启用。”@wuschelhase,当我在php页面上处理
图像时,我也遇到了这样的问题,你也在做同样的事情??你确定你编辑了正确的php.ini吗?CLI和Web执行有两种不同的方式。@wuschelhase查看
phpinfo()
以查看正在使用的php.ini的确切路径。您可能没有编辑正确的模式。这是安全模式,在phpinfo()中找到