昨天网站突然发现不能访问,打开前台和后台都会提示类似“Fatal error: Allowed memory size of 1687321 bytes exhausted (tried to allocate 3684211 bytes) in fuction.php on line 401”这样的代码错误,一看是内存限制的问题于是想到让空间商协助解决,技术人员很快就给出了回复,说是WordPress程序后台的某个插件引起,于是果断帮我把所有插件都给禁用了,然后发现真的可以访问了。但是,很快又出现同样的问题。
确定导致网站不能访问的原因是过多插件导致WordPress占用内存超过WordPress内存限制,于是就从“修改WordPress内存限制”这一途径来解决,这里分享下解决WordPress Memory Limit(内存限制过小)问题的两种方法:
方法一:通过修改WordPress自身文件修改放宽内存限制(如果你也是由于使用过多插件造成该问题的,建议使用此方法)
只要打开WordPress根目录wp-includes文件夹下default-constants.php文件,搜索“set memory limits”找到如下代码
// set memory limits
if ( !defined('WP_MEMORY_LIMIT') ) {
if( is_multisite() ) {
define('WP_MEMORY_LIMIT', '64M');
} else {
define('WP_MEMORY_LIMIT', '32M');
}
}
if ( ! defined( 'WP_MAX_MEMORY_LIMIT' ) ) {
define( 'WP_MAX_MEMORY_LIMIT', '256M' );
}
然后把define('WP_MEMORY_LIMIT', '32M');32M这个默认值修改为更大一些的值,我把它修改为512M后网站就正常了!
方法二:通过修改php.ini实现
(1)如果你使用的是和破折君博客一样的虚拟主机,控制面板支持自定义php.ini属性的话,那很简单,只要在内存限制的选项修改下内存限制数值就可以解决。(具体数值视具体情况而定)
(2)如果你使用的空间不支持自定义php.ini属性,你可以在public_html 目录下自行创建一个php.ini文件 ,并添加如下代码:
memory_limit = *M (注:代码中*改为你认为合适的内存大小数值,一般128就够了!)
然后在根目录下修改.htaccess文件,添加下面代码:
suPHP_ConfigPath /home/username/public_html/(注:代码中username改为你空间的用户名)