在运行PHP程序中,有时会遇到“Fatal Error: Allowed memory size of xxxxxx bytes exhausted”的错误, 这个表示PHP脚本使用了过多的内存,并超出了系统对其设置的允许最大内存。
解决这个问题,首先我们优化代码,减少内存的使用,在程序没有问题的情况下,
我们通过下面的方法来增加PHP的内存限制(memory_limit)。
查看php的内存限制值
使用phpinfo函数查看这个值<?php phpinfo();?>
执行这个函数我们看到PHP环境配置的信息,其中有一部分是关于"memory_limit"的, 如下图:
设置memory_limit的值
方法1: 修改php.ini
最简单或常用的方法是修改php.ini
找到生效的php.ini文件
查看phpinfo函数的结果,找到"Loaded Configuration File"这一项,以下是个例子:
这就是当前使用的php.ini文件的路径。编辑php.ini
在php.ini中,找到"memory_limit"这一项,如果没有,你可以在文件的尾部自己增加这个参数。memory_limit=128M;将128M改为任何你想设置的值
保存文件
重启web 服务器
如果是web服务器使用Apache, 则执行:httpdrestart
方法2: 运行时修改php的内存设置
在你的php代码中使用ini_set函数修改内存大小。ini_set('memory_limit','128M');