WordPress内存耗尽报错,调整内存限制后仍无法解决
WordPress内存耗尽错误排查(常规方法无效时的解决方案)
问题背景
个人WordPress站点无法访问,服务器上其他非WordPress站点运行正常。近期未修改配置、权限、插件,也未执行更新操作,昨日上传内容后站点状态一切正常。
出现的致命错误:
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 20480 bytes) in /var/www/html/wp-includes/class-wpdb.php on line 1793
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 20480 bytes) in /var/www/html/wp-includes/class-wp-fatal-error-handler.php on line 74
已尝试的操作:
- 在
wp-config.php中添加代码:define( 'WP_MEMORY_LIMIT', '256M' ); - 修改
php.ini文件:memory_limit = 256M - 编辑
.htaccess文件(尝试放在#END WordPress前最后一行,也试过放在<?php后):php_value memory_limit 256M
以上操作均无效,仍显示相同报错信息。
进一步排查与解决步骤
1. 确认PHP配置是否真正生效
首先要确定你修改的配置是否被服务器加载:
- 新建
phpinfo.php文件,内容为:
上传到站点根目录后访问,查看<?php phpinfo(); ?>memory_limit项的实际值。如果还是128M,说明配置未生效:- 核对
phpinfo里的Loaded Configuration File路径,确认你修改的是正确的php.ini文件(不同PHP版本可能有独立配置文件)。 - 修改
php.ini或PHP-FPM配置后,必须重启Apache/Nginx和PHP-FPM服务,否则配置不会生效。 - 若使用虚拟主机,可能服务商限制了内存上限,无法自行修改,需联系主机商调整。
- 核对
2. 定位内存泄漏根源
即使调高内存,若存在内存泄漏问题,后续仍会报错,建议先找到问题源头:
- 禁用所有插件:通过FTP将
wp-content/plugins文件夹重命名为plugins-disabled,若站点恢复正常,再逐个恢复插件名称,排查出导致内存占用过高的插件。 - 切换默认主题:重命名当前主题文件夹,让WordPress自动切换到默认主题(如Twenty Twenty-Four),排查是否是主题代码存在内存泄漏。
- 检查数据库查询:报错出现在
class-wpdb.php,大概率是异常数据库查询加载了大量数据。在wp-config.php中开启调试日志:
访问站点后查看define( 'WP_DEBUG', true ); define( 'WP_DEBUG_LOG', true );wp-content/debug.log,里面会记录详细的查询日志,帮助定位异常的数据库操作。
3. 额外的内存调整方案
如果常规方法无效,试试这些操作:
- 在
wp-config.php中同时设置前台和后台的内存上限:define( 'WP_MEMORY_LIMIT', '256M' ); define( 'WP_MAX_MEMORY_LIMIT', '512M' ); - 若服务器使用PHP-FPM,直接修改对应池的配置文件(如
/etc/php/8.1/fpm/pool.d/www.conf),添加:
修改后重启PHP-FPM服务。php_value[memory_limit] = 256M
内容的提问来源于stack exchange,提问作者Marcelo
相关产品推荐
相关产品推荐

