在 Ubuntu 上修复 PHP-FPM 的问题,通常取决于具体表现(无法启动、502 错误、502 Bad Gateway、进程异常等)。下面按常见故障场景给你一套完整排查与修复流程,你可以按顺序来。
systemctl status php-fpm
# 或(Ubuntu 常见)
systemctl status php8.1-fpm
✅ 正常应显示:
Active: active (running)
❌ 如果失败,重点看 红色报错信息
ERROR: unable to bind listening socket
# 删除残留 sock
rm -f /run/php/php8.1-fpm.sock
# 重启
systemctl restart php8.1-fpm
Nginx 找不到 PHP-FPM
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
ls -l /run/php/
chown www-data:www-data /run/php/php8.1-fpm.sock
server reached pm.max_children
编辑配置:
vim /etc/php/8.1/fpm/pool.d/www.conf
调整:
pm = dynamic
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20
然后:
systemctl restart php8.1-fpm
listen = /run/php/php8.1-fpm.sock
; 或
listen = 127.0.0.1:9000
⚠️ Nginx 和 PHP-FPM 必须一致
journalctl -xe
pm.max_childrenphp-fpm8.1 -t
apt install php8.1-mysql php8.1-curl php8.1-mbstring
apt purge php8.1-fpm
apt autoremove
apt install php8.1-fpm
/var/log/php8.1-fpm.log
/var/log/nginx/error.log
tail -f /var/log/php8.1-fpm.log
systemctl status php8.1-fpm你可以直接把下面信息发我,我可以精准定位问题:
我可以一步一步带你修 ✅