关于升级WordPress 2.5 版后Allowed memory的解决方法

发布时间: 2008-04-01 07:20 | 作者: 乐乐猪

Increasing memory allocated to PHP
由于WordPress 2.5的变化很大,很多插件在最新版本发布前无法正常使用,其中最常见的问题是升级后插件页面不能打开,或者激活某个插件后,插件界面不能打开,并且出现 “Fatal error: Allowed memory size of xxxxxx bytes exhausted” 这样的错误信息,出现这种问题的原因一般是因为 WordPress 所使用的内存超过了PHP默认的最大值,将php.ini文件的memory_limit的改大一些就可以了。

但由于种种原因,很多人无法更改php.ini文件,或者改了但系统却不装在你更改后的php.ini文件,好在WordPress 2.5版给我们提供了不用修改php.ini文件就可以直接PHP内存的方法。

WordPress 2.5版添加了WP_MEMORY_LIMIT这个属性,默认的memory_limit大小为32M,如果当前系统的PHP默认值小于32M的话,WordPress 会自动追加到32M,从下面这段代码就可以看出来,

12
13
14
15
16
if ( !defined('WP_MEMORY_LIMIT') )
	define('WP_MEMORY_LIMIT', '32M');
 
if ( function_exists('memory_get_usage') && ( (int) @ini_get('memory_limit') < abs(intval(WP_MEMORY_LIMIT)) ) )
	@ini_set('memory_limit', WP_MEMORY_LIMIT);

但只是对WordPress本身而言,不会影响到其他PHP程序。按照官方的文档,如果想加大应用内存的话,只要在wp-config.php文件中追加 define(’WP_MEMORY_LIMIT’, ‘64MB’);这样代码就可以了。

Increase PHP Memory to 64MB

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

Increase PHP Memory to 96MB

define('WP_MEMORY_LIMIT', '96MB');

可是不知道为什么,我加入后不但后台插件的问题没有解决,连前台网站都无法正常访问了,急忙改了回去,看来直接在配置文件中设置不好用,那就只好去改她的程序了,还好比较方便。找到wp-settings.php文件的第12行

12
13
14
15
16
if ( !defined('WP_MEMORY_LIMIT') )
	define('WP_MEMORY_LIMIT', '32M');
 
if ( function_exists('memory_get_usage') && ( (int) @ini_get('memory_limit') < abs(intval(WP_MEMORY_LIMIT)) ) )
	@ini_set('memory_limit', WP_MEMORY_LIMIT);

直接将32M改成64M,保存更新上传,OK,以前因为内存超出的插件现在已经可以正常使用了。


中文关键字:memory_limit wordpress 插件 allowed 升级 方法 memory 关于 2.5 limit php 文件 define 内存 wp

相关日志 :

关键字: , | 分类: WordPress | 评论数:6
喜欢 傻瓜不傻 的文章,那就通过 RSS Feed 功能订阅阅读吧!

已经有6 个评论

  1. 非鱼 说:

    专业的虚拟主机提供商会禁止在程序里使用这个变量,如果人人都加大自己的内存使用权,对机器是很危险的。

  2. 老公 说:

    谢谢非鱼的提醒,我的主机是HostMonster主机,默认32M,现在运行的WordPress + 插件,一共用的内存是33M,就多一那点点就运行不了。如果按照默认的8M、16M好多插件都不能用了。

  3. 升级 Wordpress 2.5 正式版 | 傻瓜不傻 说:

    [...] 问题已经解决了,解决办法参照 关于升级WordPress 2.5 版后Allowed memory的解决方法 域名Push回来了 关于升级WordPress 2.5 版后Allowed [...]

  4. joshualjd 说:

    define(’WP_MEMORY_LIMIT’, ‘64M’);

    直接复制贴到 wp-config.php中 我想应该好用了,我觉得好像你的引号不是在英文状态下输入的。

    乐乐猪 reply on 08月 15th, 2008:

    您说的对,最简单的方法就是将
    define(’WP_MEMORY_LIMIT’, ‘64M’);
    直接复制到 wp-config.php 中,
    但那个版本的wp好像不太好用,我就是加了不好用才改的wp-settings.php 文件。后来换主机了就没有这个问题了。
    所有引号都应该是半角的,wp给自动转换了。 :oops:

  5. joshualjd 说:

    : )

我要评论