WordPress 6.2站点PHP内存耗尽问题求助(PHP7.4+Nginx环境)
WordPress内存耗尽错误的进阶排查方案
针对你遇到的Allowed memory size of 1073741824 bytes exhausted错误(出现在wp-includes/script-loader.php第1029行),已尝试常规内存调整和插件移除无效后,可按以下步骤排查:
确认PHP-FPM配置生效
Nginx环境下PHP通常以FPM模式运行,修改全局php.ini后需重载FPM服务才会生效:- 找到PHP 7.4 FPM的配置文件(常见路径:
/etc/php/7.4/fpm/php.ini),确认memory_limit = 1024M已设置 - 检查FPM池配置(如
/etc/php/7.4/fpm/pool.d/www.conf),确保没有php_value[memory_limit]或php_admin_value[memory_limit]覆盖全局设置 - 重启FPM服务:
sudo systemctl restart php7.4-fpm
- 找到PHP 7.4 FPM的配置文件(常见路径:
切换至默认主题排查
插件已移除的情况下,问题大概率来自当前主题。通过FTP/服务器文件管理器:- 进入
/wp-content/themes/目录,将当前主题文件夹重命名(例如your-theme_old) - 访问站点,WordPress会自动切换到默认主题(如Twenty Twenty-Three),验证错误是否消失
- 进入
定位script-loader.php的具体触发点
错误行属于WordPress脚本加载逻辑,通常是外部代码(主题functions.php或遗留钩子)导致的无限循环/重复注册:- 在
wp-config.php中开启调试模式:define('WP_DEBUG', true); define('WP_DEBUG_LOG', true); - 访问站点后,查看
/wp-content/debug.log中的详细调用栈,找到触发内存耗尽的具体代码路径
- 在
验证PHP内存实际生效值
创建phpinfo.php文件放入站点根目录,内容为:<?php phpinfo(); ?>访问该文件,搜索
memory_limit字段,确认实际生效值是否为1024M。若不符,需检查Nginx配置是否正确指向目标PHP-FPM池,或是否存在其他局部配置(如.user.ini)覆盖全局设置清理服务器端缓存
- 清理Nginx缓存(若站点配置了静态缓存),重启Nginx服务:
sudo systemctl restart nginx - 检查OPcache配置,若
opcache.enable = on,重启PHP-FPM刷新缓存:sudo systemctl restart php7.4-fpm
- 清理Nginx缓存(若站点配置了静态缓存),重启Nginx服务:
数据库优化排查
异常的数据库数据也可能导致内存占用过高:- 使用数据库工具(如phpMyAdmin)执行表优化:对所有WordPress前缀的表执行
OPTIMIZE TABLE操作 - 检查
wp_options表,筛选autoload = 'yes'的记录,查看是否存在体积过大的异常配置项(如主题遗留的超大自定义设置),必要时删除或修正
- 使用数据库工具(如phpMyAdmin)执行表优化:对所有WordPress前缀的表执行
内容的提问来源于stack exchange,提问作者Henri
相关产品推荐
相关产品推荐

