真是纠结,刚在登陆我的wordpress后台的时候发现网站无法打开,只能打开登陆页面,其他页面一直是无法响应……
马上打开网站日志,查看错误文件发现错误时:out of memory (allocated 9699328) (tried to allocate 393216 bytes)
意思很简单:内存溢出。也就是内存不够的意思,二话不说先恢复网站再说,直接重启apache,重启后正常……
但是问题出现了不能就这样忽略掉呀,如果不处理肯定下次还会出现这种问题,既然提示内存不足那么就我直接调大wordpress运行的内存,
这是最简单的方式了。再想一想wordpress哪设置了内存大小呀,有点影响wp-config.PHP里面有,打开找一找,怪了,没有……
经过漫长的寻找终于在wp-includes/defaule-constants.php 中找到,在wp_initial_constants方法中,方法是这样写的,[无线通信模块]主要的几句是:
1 if ( !defined('WP_MEMORY_LIMIT') ) {
2 if( is_multisite() ) {
3 define('WP_MEMORY_LIMIT', '64M');
4 } else {
5 define('WP_MEMORY_LIMIT', '32M');
6 }
7 }
8
9 if ( ! defined( 'WP_MAX_MEMORY_LIMIT' ) ) {
10 define( 'WP_MAX_MEMORY_LIMIT', '256M' );
11 }
第一行:如果没有定义WP_MEMORY_LIMIT
第二行:如果网站只有一个(可以在一个wordpress建立多个站)
第三行 如果有多个网站就设置wordpress的内存为64M
第四行:如果没有多个网站就设置他的内存为32M(哈哈,找到了,wordpress默认的大小为32M)
第9行:如果设有设置WP_MAX_MEMORY_LIMIT最大内存的话
第10行:如果没有设置最大内存的话,就定义最大内存为256M……
综上所述:wordpress设置默认的内存为32M,如果内存不够用,最大不会超过256M……
256M实际上已经够大了,不过感觉最小32M太小了,改,这个一定得改,把他改成100M,默认100M
所以在wp-config.php中增加一行配置:define("WP_MEMORY_LIMIT", "100M");
把默认的32M改成了100M……这样总行了吧,改后继续观察……
建博客半年第一次发生这种事情……
更多 wordpress内容请看 wordpress 专题
在想想,这样改的确是改了wordpress的,但是php也有限制呀,php限制了的话,wordpress设置成1G都是没用的,打开php.ini文件,查看一下默认的php的内存多大,找到memory_limit默认的是128M,
memory_limit = 128M
哦,原来如此,php设置的最大内存是128M,所以上面的wordpress配置中的256M是没有作用的,php这里限制在128M以内。
经过这几个分析统一起来,最终的wordpress的内存设置是:最小100M,最大128M,内存大小在2者之间变动。
在观察一段时间,如果没有出现错误的话就这样,再发生内存不足的问题,果断把php中的128M改成256M……
友情提示:我敢保证我的模板,我在模板中写的代码没有任何性能问题,作为一个超级软件设计师这点自信还是有的……
如果你的wordpress老是经常内存不足,就要在模板,在自己写的代码上找原因,因为性能低下的代码用超级计算机都是没用的,给你一台银河计算机还是照样会内存溢出……
如果你服务器物理内存够用
那就改php.ini把内存限制加大
物理内存不够用就加内存