首页 > Wordpress > 正文

WordPress 提示 Allowed memory size exhausted 内存耗尽怎么办?

fenij 2026-07-29 7 Wordpress

打开网站或后台时看到 Fatal error: Allowed memory size of 134217728 bytes exhausted,意思是某段 PHP 代码要用的内存超过了允许上限(134217728 字节 = 128MB),进程被强行中断。这是 WordPress 很常见的致命错误,一般十分钟内能解决。下面按”先恢复、再根治”的顺序来。

第一步:调大 WordPress 内存限制(快速恢复)

编辑站点根目录的 wp-config.php,在 /* That's all, stop editing! */ 这一行之前加入:

define( 'WP_MEMORY_LIMIT', '256M' );
define( 'WP_MAX_MEMORY_LIMIT', '512M' );

第一行是前台的内存上限,第二行是后台(管理界面)的上限。保存后刷新页面,多数情况下错误会立刻消失。

第二步:确认 PHP 层面的上限没有卡脖子

如果加了上面两行还报错,说明 PHP 自己的 memory_limit 更低,WordPress 的设置没法超过它。先看一下当前值:

php -i | grep memory_limit

修改 php.ini(宝塔面板在「软件商店 → PHP 设置 → 配置修改」):

memory_limit = 256M

改完重启 PHP:systemctl restart php-fpm(或者面板里重载)。虚拟主机用户改不了 php.ini 的,可以试试在站点根目录 .htaccess 里加 php_value memory_limit 256M,或者联系主机商帮调。

第三步:找出吃内存的元凶

调大上限只是把症状压下去,如果 256M 还不够,几乎可以肯定是某个插件或主题有问题。排查方法:

# 开启调试日志,wp-config.php 中加入:
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );

复现错误后去看 wp-content/debug.log,报错堆栈里的文件路径会直接指向出问题的插件目录。常见的嫌疑:备份插件在打包大站点、统计类插件一次性加载全量数据、某些页面构建器、图片优化插件在批量处理。确认后逐个停用验证——进不了后台时,用 FTP/SSH 把 wp-content/plugins/插件名 改个名,就能强制停用那个插件。

第四步:仍然不够?考虑升级配置

如果站点装了 WooCommerce、多语言、页面构建器这类重型组合,128M 内存的入门 VPS 会相当吃力。建议:VPS 至少 2GB 内存起步;PHP 版本升到 8.1+(同样的代码内存占用会明显更低);开个对象缓存(Redis)减少重复查询的内存开销。

常见问题

Q1:改了 wp-config.php 没有生效怎么办?
确认代码加在了 /* That's all, stop editing! */ 之前;再确认 PHP 的 memory_limit 不低于你设的值——WordPress 的设置突破不了 PHP 的上限。

Q2:报错里的数字怎么换算成 MB?
除以 1048576 即可:134217728 = 128MB,268435456 = 256MB。报错里还会显示”tried to allocate X bytes”,表示还差多少内存。

Q3:把内存调到 1024M 甚至更大可以吗?
不建议无脑调大。单个请求正常用不到这么多,调太大反而盖住了插件内存泄漏的问题,而且并发高时容易把服务器整体内存吃光。256M–512M 是比较合理的区间,超了就该去查代码。

如果排查之后还是找不到吃内存的插件,欢迎到 fenij.com 本文下方留言,把你的 debug.log 报错行贴出来,我来帮你看。