WordPress站点FastCGI及内存耗尽错误求助
WordPress内存耗尽及FastCGI连接重置问题排查方案
问题概述
- PHP内存耗尽错误:已尝试将内存限制提升至6GB,但仍触发报错,错误日志显示当前生效的内存限制仅为268987456字节(约256MB),且进程尝试分配5.2GB内存:
[proxy_fcgi:error] [pid 18648:tid 10874] [client 1xx.1xx.1xx.2xx:50xx4] AH01071: Got error 'PHP message: PHP Fatal error: Allowed memory size of 268987456 bytes exhausted (tried to allocate 5557364296 bytes) in /var/www/html/domain.ca/wp-includes/load.php on line 1512'
- FastCGI连接重置错误:伴随出现头部读取失败及连接重置报错,该问题多由PHP进程崩溃(如内存耗尽)引发:
[proxy_fcgi:error] [pid 28534:tid 20008] [client 1xx.1xx.1xx.1xx:5xx85] AH01067: Failed to read FastCGI header, referer: https://domain.ca/ [proxy_fcgi:error] [pid 28534:tid 20008] (104)Connection reset by peer: [client 1xx.1xx.1xx.1xx:5xx85] AH01075: Error dispatching request to : , referer: https://domain.ca/
解决步骤
一、确保6GB内存限制真正生效
错误显示当前内存限制未更新,需从多维度检查配置:
- 修改
wp-config.php:在文件头部(/* That's all, stop editing! Happy publishing. */之前)添加:define('WP_MEMORY_LIMIT', '6G'); define('WP_MAX_MEMORY_LIMIT', '6G'); - 调整PHP配置文件:找到站点对应的
php.ini(路径可能为/etc/php/{版本}/fpm/php.ini或站点根目录.user.ini),修改:memory_limit = 6G - 检查PHP-FPM池配置:若使用PHP-FPM,查看
www.conf或站点专属pool配置,确保未通过php_admin_value[memory_limit]单独覆盖内存限制。 - 重启服务验证:修改配置后重启PHP-FPM和Web服务:
可创建systemctl restart php8.2-fpm # 替换为你的PHP版本 systemctl restart apache2phpinfo.php文件(内容为<?php phpinfo(); ?>),访问后搜索memory_limit确认是否显示6GB。
二、排查内存异常占用根源
尝试分配5.2GB内存属于异常情况,需定位内存泄漏点:
- 逐一排查插件:禁用所有插件后逐个启用,观察内存使用变化,定位问题插件。
- 切换默认主题:临时切换到Twenty Twenty-Four等官方默认主题,确认是否为主题代码问题。
- 修复核心文件:错误发生在
wp-includes/load.php第1512行,多与翻译文件加载逻辑相关,可重新下载WordPress核心文件覆盖该目录,排除文件损坏问题。
三、FastCGI问题额外优化
若内存问题解决后仍出现连接重置,可调整PHP-FPM配置:
- 适当提高
pm.max_children值,避免进程数量不足。 - 设置合理的
request_terminate_timeout,防止进程长时间挂起。 - 开启
catch_workers_output,查看PHP-FPM日志获取进程崩溃的详细原因。
内容的提问来源于stack exchange,提问作者ApplePie
相关产品推荐
相关产品推荐

