乌徒帮技术范WEB开发PHP › php内存不够:memory limit的解决办法

php内存不够:memory limit的解决办法

分类:PHP

有一些免费空间对网站程序消耗内存做了限制,初学者在遇到Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 491520 bytes) in...这样的php错误提示时,应该怎样应对呢?

今天在使用http://wordpress.cn.gp搭建多站点时,遇到了kilu.de免费空间分配内存不足的情况。kilu.de免费空间给出的内存为32M限制,而wordpress3.3之后有些内核程序占用资源已经超过了33M,因此如果还在使用kilu.de免费空间,不得不把wordpress的版本降下来。wordpress3.2.1的占用内存大部分在28M,但仍然有些核心部分超过了32M,必须想办法解决这一问题,才能正常使用。即使采用了文章下面的方法,kilu.de免费空间的wordpress仍然在很多页面会出现文章开始的php错误提示:内存不够!

抛开kilu.de空间的情况不谈,我们来谈谈应对该问题的一般思路:

1、修改php.ini

一些主机空间支持php.ini,你可以将下面的代码拷贝到php.ini上传到空间

memory_limit=64M;

2、利用.htaccess增加虚拟空间的内存限制

在支持.htaccess的空间上传含有一行下面代码的.htaccess文件

php_value memory_limit 64M

3、为wordpress增加配置语句

在wordpress的wp-config.php文件中增加下面的一条语句

define('WP_MEMORY_LIMIT','64M');

4、单独php页面可以使用php函数解一时之需

如果只是某一个php文档出现了内存不足的情况,(当然不是在wordpress中,)可以在该文档的开头增加下面一句以调整内存限制。也可以在一个全局文档中增加,让所有的php文档都可享用

ini_set('memory_limit','64M');

5、改php调用和执行为html输出

要知道html代码永远比程序执行代码占用资源少。如果你的wordpress只是在某一个可数的页面出现调用时的内存不足,而且你可以直接用html代码将php文档中的函数代替的话,你完全可以模仿我的做法,把对应的php调用函数直接换为调用完的html代码。

在以上5种方法中,前4种都能做到一劳永逸,然而对于kilu.de免费空间则是惘然,kilu.de空间不能通过它们来增加执行内存,我相信还有一些免费的空间也可能存在这个问题,你要么选择第5种方法,要么换一个空间。我最后选择了第5种方法,对几个必须的页面进行了调整。你可以进入http://wordpress.cn.gp进行测试。

已有2条评论 快速评论
  1. 否子戈 #1284楼 回复给@1281楼 2012/07/14 00:11:01 回复

    掠夺你的屏幕

  2. Firm #1281楼 2012/07/13 15:54:36 回复

    吓一跳,这个博客页面这么宽。。

填写个人信息,赶快回复吧!