页面载入中...

当前位置:首页 > 教程福利 > 帝国cms > 帝国cms

刷新出现 PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 49299456

温馨提示:本信息由会员搜集整理发布,您如有异议可以 举报 或者 版权申诉
最近做生成静态的时候,突然发现不能正常生成了,直接跳转首页ftp查看空间中没有生成静态页面,百思不得其解,于是在程序中启用了生成错误日志的功能,代码如下:ini_set('error_lo

最近做生成静态的时候,突然发现不能正常生成了,直接跳转首页

ftp查看空间中没有生成静态页面,百思不得其解,于是在程序中启用了生成错误日志的功能,代码如下:

ini_set('error_log', dirname(__FILE__) . '/error_log.txt');

  错误日志存放在程序当前目录,名字为:error_log.txt

再次运行生成操作,顺利获得了错误日志,内容是:PHP Fatal error:  Allowed memory size of 134217728 bytes exhausted (tried to allocate 49299456 bytes) in

意思是:PHP脚本消耗了分配给它的内存,达到了内存使用的峰值(128MB,即134,217,728字节),然后试图继续使用更多内存,但已经没有可用内存了。

内存超出限制了,默认的情况下,php 分配的内存是128M,如果超出就会溢出,程序处理文件超过128M,就无法执行了。

解决办法:
既然知道了问题所在,解决起来就很简单了。

对于php脚本来说,128M内存完全足够使用,除非你项目中运行了多套php程序,同时这些程序最近短时间内运行过,但是内存没有被释放,如果是这样的话,解决很简单,直接重启服务器,apache直接重启释放占用的内存空间。

或者修改php.ini文件中内存限制的指令,调高限制php占用的内存值,比如调成256M,也可以解决。

php.ini对于内存占用的指令是:

memory_limit = 256M;//将128M改成了256M

我们知道,过多的的内存占用会直接导致系统运行缓慢,最佳的解决方法是优化程序。

程序运行完成,好的习惯是清空内存,把不需要的变量值,凡是写进内存的参数全部清空,这样就减少了内存的占用。

清空变量的语法:

unset ($var)

一个变量不再使用之后,一定要记得unset掉它。


  

延伸阅读:

  
 

刷新出现 PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 49299456