由于某些原因,我的一个php脚本忽略了php.ini内存限制或ini_set。
当我执行print_r(ini_get_all)时,它显示全局内存限制设置为100M (并且是本地的),当我的脚本死于致命错误:内存不足(已分配24714304) (尝试分配571字节)
对诊断这个有什么建议吗?服务器有8 of的内存,并且以前在运行这个脚本时从未出现过问题。
关于调试有什么建议吗?
谢谢!
发布于 2009-12-31 04:58:43
最常见的原因通常是CLI PHP二进制文件使用的php.ini文件与您预期的不同。这可能是由user permissions引起的,或者只是安装的PHP版本不同的默认php.ini文件。但是,听起来您已经对它进行了一些分析,并且您的脚本中的内存限制可能是正确的。
在这种情况下,很可能是操作系统对进程施加了硬内存限制,在这种情况下,您必须找出强制内存的来源。
我建议你看看this thread,因为那张帖子和你的情况非常相似。
发布于 2009-12-31 05:16:07
我的进程的虚拟内存是硬限制的(这个数字太低了)。
在bash shell中,我这样做了:
ulimit -v (memory_in_bytes,无括号)
这解决了我的问题。天啊,我爱死堆栈溢出了
发布于 2009-12-31 05:01:50
短小精悍
ini_set('memory_limit', -1);
以防您想跳过调试
https://stackoverflow.com/questions/1982404
复制相似问题