2010年3月30日星期二

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

Increasing memory allocated to PHP
由于WordPress2.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,从下面这段代码就可以看出来,
  1. if ( !defined('WP_MEMORY_LIMIT') )
  2.         define('WP_MEMORY_LIMIT', '32M');

  3. if ( function_exists('memory_get_usage') && ( (int) @ini_get('memory_limit') < abs(intval(WP_MEMORY_LIMIT)) ) )
  4.         @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行
  1. if ( !defined('WP_MEMORY_LIMIT') )
  2.         define('WP_MEMORY_LIMIT', '32M');

  3. if ( function_exists('memory_get_usage') && ( (int) @ini_get('memory_limit') < abs(intval(WP_MEMORY_LIMIT)) ) )
  4.         @ini_set('memory_limit', WP_MEMORY_LIMIT);
复制代码
直接将32M改成64M,保存更新上传,OK,以前 因为内存超出的插件现在已经可以正常使用了。
                                          

没有评论:

发表评论