昨天博客经常提示Allowed memory size of 134217728 bytes exhausted (tried to allocate 8192 bytes)错误,刚开始搞不懂什么原因,但怕经常这样影响百度收录和用户体验,所以百度搜索可以下,大概意思是:允许的内存大小 134217728 字节用尽(尝试分配 8192 字节)。
那么为什么会出现这种问题呢?通过百度发现是为了服务器安全和负载相关因素考虑,所以服务器默认禁用了一些函数以及一些其他方面的限制,PHP中的memory_limit 参数限制了,当文件提交太大或者提交的字符数据过多,在读取的时候就会出现上述报错,这里我们只需要修改php.ini配置文件里面的默认内存大小限制即可。
1、对于服务器来说很容易操作,进入服务器的php安装目录下找到php.ini配置文件,编辑php.ini文件,找到 memory_limit 参数,将后面的参数值修改大点,如256M或者512M。
修改完配置文件后重启下php服务(Apache环境则重启下web服务)。
2、宝塔环境的修改方法
如果安装了宝塔环境的,直接找到网站查看网站当前使用的php版本,然后在左侧菜单栏中找到软件商店进入,找到对应的PHP版本,如php5.6点击设置 >> 然后在弹出的对话框中找到配置修改 >> memory_limit,然后吧默认的128改成256M或者512M(建议不要改太大,以免导致资源耗尽从而服务器死机)。
修改完后点击对话框服务 >> 重载配置 如下图即可完成。
3、虚拟主机环境的修改方法
首先在网站根目录创建一个.user.ini文件,使用这个文件来设置需要定义的参数。
然后将下面代码复制到文件中保存即可:memory_limit = 128M
如果还是报错根据需求把128改为256或512即可。
好了关于如何解决php内存溢出图文教程,到此结束啦!有不懂的问题可以在李海博客留言咨询!
这里多插一句话memory_limit设置值并不是越大越好,要根据应用实际情况来设置,原则上memory_limit*进程数不得超过服务器总内存,否则会导致频繁使用swap,从而导致磁盘过忙(IO HANG),资源耗尽最终导致服务器死机!
发表评论