WordPress报502错误问题解决-php-fpm-84.service loaded failed failed LSB: starts php-fpm

文章目录

问题描述

服务器环境:

  • php:8.4
  • MySQL:8.0
  • Nginx:1.26.2

在访问站点时,一直报502,而两天前还能正常访问。

问题排查

导致502的问题很多,比如站点访问量太大,站点受到了攻击等,但是我看了后台,重启了Nginx,也没解决。现在遇到问题,首选就用AI来诊断。

我先复制了网站的错误日志:

json 复制代码
2025/03/07 13:16:26 [crit] 795740#0: *2451 connect() to unix:/tmp/php-cgi-84.sock failed (2: No such file or directory) while connecting to upstream, client: 66.249.66.21, server: www.imqd.cn, request: "GET /robots.txt HTTP/1.1", upstream: "fastcgi://unix:/tmp/php-cgi-84.sock:", host: "www.imqd.cn"
2025/03/07 13:16:26 [crit] 795740#0: *2450 connect() to unix:/tmp/php-cgi-84.sock failed (2: No such file or directory) while connecting to upstream, client: 66.249.66.1, server: www.imqd.cn, request: "GET /tag/es6 HTTP/1.1", upstream: "fastcgi://unix:/tmp/php-cgi-84.sock:", host: "www.imqd.cn"

丢给ChatGPT,然后它回复的解决方案有点多,我用了下面这一条:

bash 复制代码
# 将该指令复制,并在站点目录下执行命令行
systemctl list-units --type=service | grep php

输出:

bash 复制代码
php-fpm-74.service                       loaded active running LSB: starts php-fpm
● php-fpm-84.service                     loaded failed failed  LSB: starts php-fpm

错误如上:

表示我的环境中安装了2个php版本,其中Nginx 试图使用 PHP 8.4 (php-fpm-84) ,但它 无法启动 ,所以 502 Bad Gateway

问题解决

这个我之前是用PHP8.4来运行WordPress站点的,现在它的服务遇到了问题,导致502问题。

所以很简单的解决方式就是将WordPress的PHP版本切换为7.4即可。

但是为什么会导致8.4 用不了呢?wp运行在PHP8中更安全。

查看PHP的日志:

bash 复制代码
[14-Feb-2025 04:04:02] NOTICE: child 322153 stopped for tracing
[14-Feb-2025 04:04:02] NOTICE: about to trace 322153
[14-Feb-2025 04:04:02] NOTICE: finished trace of 322153
[15-Feb-2025 17:18:04] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 8 children, there are 1 idle, and 22 total children
[15-Feb-2025 17:18:05] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 16 children, there are 3 idle, and 26 total children
[16-Feb-2025 17:52:51] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 8 children, there are 2 idle, and 27 total children
[16-Feb-2025 17:52:52] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 16 children, there are 3 idle, and 30 total children
[16-Feb-2025 17:52:53] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 32 children, there are 2 idle, and 32 total children
[17-Feb-2025 04:01:49] WARNING: [pool www] child 1221397, script '/www/wwwroot/www.cn/wp-admin/admin-ajax.php' (request: "GET /wp-admin/admin-ajax.php?action=wordfence_doScan&isFork=0&scanMode=standard&cronKey=c1d5082357026a61a2ce6e9feff7f549&signature=31aa3d000f5f2053ad504322212ad58a52a5a0e3032b25317bbdc7ef656b0606") executing too slow (34.708130 sec), logging
[17-Feb-2025 04:01:49] NOTICE: child 1221397 stopped for tracing
[17-Feb-2025 04:01:49] NOTICE: about to trace 1221397
[17-Feb-2025 04:01:49] NOTICE: finished trace of 1221397
[17-Feb-2025 10:57:21] NOTICE: Terminating ...
[17-Feb-2025 10:57:21] NOTICE: exiting, bye-bye!

发现了2个问题:

PHP-FPM 进程池(pool www)资源不足,服务器负载过高

  • 日志多次提示 seems busy ,说明 PHP 进程太少,导致请求等待时间变长
  • 你可能需要 增加 PHP-FPM 的进程数pm.start_serverspm.min/max_spare_servers)。

某些 PHP 脚本执行太慢,导致超时

  • 日志中显示 admin-ajax.php 执行时间过长(34.7 秒),可能是 WordPress 插件(如 Wordfence)在运行扫描任务,影响了服务器性能。

所以归根结底还是服务器配置不够,并且因为我开启了Wordfence插件扫描导致的原因。


如果你在开发WordPress时遇到了问题,可以在下方与我联系,作为你的WordPress顾问。

相关推荐
小猿_003 分钟前
C语言单链表头插法
c语言·开发语言
Hello.Reader13 分钟前
在 Rust 中实现面向对象的状态模式
开发语言·rust·状态模式
JouJz15 分钟前
Java虚拟机之垃圾收集(一)
java·开发语言·jvm
五行星辰1 小时前
Java链接redis
java·开发语言·redis
邪恶的贝利亚1 小时前
C++之序列容器(vector,list,dueqe)
开发语言·c++
原来是猿1 小时前
蓝桥备赛(13)- 链表和 list(上)
开发语言·数据结构·c++·算法·链表·list
异常驯兽师1 小时前
Java集合框架深度解析:List、Set与Map的核心区别与应用指南
java·开发语言·list
Ryan_Gosling2 小时前
QT-异步编程
开发语言·qt
Pocker_Spades_A2 小时前
Python刷题:Python基础
开发语言·python
放氮气的蜗牛2 小时前
C++从入门到精通系列教程之第十篇:异常处理与调试技巧
开发语言·jvm·c++