WordPress内存溢出,WP
WordPress站点突然白屏或提示“Allowed memory size ... exhausted”,多半是PHP进程可用内存被耗尽。
本文面向零基础站长,讲清如何定位内存溢出,并通过调整wp-config.php中的内存参数来缓解。
照着做,你能独立完成内存上限修改,并确认是否生效。
先确认是不是真的内存溢出
内存溢出通常有几种表现:页面显示“Fatal error: Allowed memory size of X bytes exhausted”,后台无法登录,或者发布文章时卡住。
出现这些提示时,先用命令行查看PHP当前的内存限制。
登录服务器SSH,执行:
php -i | grep memory_limit
如果输出类似memory_limit => 128M,说明PHP环境默认上限是128M。
再查看WordPress后台“工具”->“站点健康”->“信息”->“服务器”,也能看到PHP memory limit的值。
判断条件:当报错信息中的数字(例如134217728字节)与memory_limit数值接近时,基本可确认是内存不足,而非插件冲突或数据库错误。
修改wp-config.php中的内存参数
WordPress允许在wp-config.php中定义常量来覆盖PHP默认值。
找到网站根目录下的wp-config.php文件,位置通常在/www/wwwroot/你的域名/下。
用编辑器打开,在/* That's all, stop editing!这一行之前,添加以下代码:
Happy publishing. */
define('WP_MEMORY_LIMIT', '256M');
define('WP_MAX_MEMORY_LIMIT', '512M');
WP_MEMORY_LIMIT:控制WordPress前端日常运行的内存上限,一般设为256M。WP_MAX_MEMORY_LIMIT:控制后台管理、图片处理等重任务的内存上限,可设为512M。
保存文件后,如果服务器装有PHP OPcache,建议重启PHP服务使配置生效。
宝塔面板用户可在“软件商店”->“PHP”->“服务”中点击重启;
命令行用户执行:
sudo systemctl restart php-fpm
注意:wp-config.php中的定义不能超过服务器PHP实际允许的最大值。
如果PHP配置中memory_limit被设为128M,WordPress无法通过常量突破这个硬限制,需要同时修改PHP配置。
同步调整PHP内存限制
如果wp-config.php修改后报错依旧,说明PHP层面限制了上限。
找到PHP配置文件php.ini,路径通常在/www/server/php/你的PHP版本/etc/php.ini。
搜索memory_limit,将其改为:
memory_limit = 256M
保存后重启PHP服务,再次执行php -i | grep memory_limit确认输出已变为256M。
避坑提醒:不要把内存限制盲目调到1024M以上,这可能导致单个PHP进程占用过多物理内存,在低配服务器上引发MySQL被系统杀死。
建议从小往大调,先试256M,不够再升512M。
验证是否生效
修改完成后,回到WordPress后台,打开“工具”->“站点健康”->“信息”,查看PHP memory limit是否显示新值。
也可以创建一个临时PHP文件,内容为,通过浏览器访问查看输出。
php echo ini_get('memory_limit');
如果之前报错的页面现在能正常打开,且发布文章、上传图片不再中断,说明调整已生效。
若仍报错,检查是否还有其他wp-config.php中的常量冲突,或联系主机商确认是否允许自定义内存。
可独立摘录的结论:WP_MEMORY_LIMIT控制前端内存,WP_MAX_MEMORY_LIMIT控制后台内存;
两者需同时设置,且不能超过PHP的memory_limit。
常见疑问
为什么修改了wp-config.php还是报错?
可能是PHP的memory_limit更低,或者服务器使用了suPHP等限制机制。先检查PHP配置,再确认主机是否允许覆盖。
调整内存上限会影响网站速度吗?
不会直接提升速度,但能避免因内存不足导致的崩溃。真正提速还需优化插件、启用缓存。
WP_MEMORY_LIMIT设置多大合适?
普通站点256M足够,运行WooCommerce或页面构建器可设512M。建议以官方文档和主机实际支持为准。
如果按上述步骤操作后问题仍未解决,建议开启WordPress调试日志,查看具体是哪个插件或主题消耗内存过多,再针对性处理。