在 Ubuntu 上排查 php-fpm 问题,一般按「能不能启动 → 日志说什么 → 配置对不对 → 和 Web 服务是否对接好」这条线来。下面是一套实用排错流程。
systemctl status php-fpm
# 或(版本相关)
systemctl status php8.1-fpm
常见状态:
active (running) ✅failed ❌(看日志)查看版本:
php -v
php-fpm8.1 -v
sudo systemctl restart php8.1-fpm
sudo systemctl status php8.1-fpm
如果启动失败,直接看错误:
journalctl -xeu php8.1-fpm
/var/log/php8.1-fpm.log
或:
/var/log/php-fpm.log
在 pool 配置里:
slowlog = /var/log/php-fpm/slow.log
request_slowlog_timeout = 5s
/etc/php/8.1/fpm/php-fpm.conf
/etc/php/8.1/fpm/pool.d/www.conf
重点看:
listen = /run/php/php8.1-fpm.sock
; 或
listen = 127.0.0.1:9000
listen.owner = www-data
listen.group = www-data
listen.mode = 0660
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
}
如果写成:
fastcgi_pass 127.0.0.1:9000;
但 php-fpm 是 socket → 502 Bad Gateway
测试 Nginx 配置:
nginx -t
✅ 检查:
✅ 检查:
request_terminate_timeout✅ 检查:
display_errors = On
error_reporting = E_ALL
或看 php 错误日志
✅ 检查:
ps aux | grep php-fpm
ps aux | grep nginx
php-fpm 运行了吗?
日志有报错吗?
listen 对吗?
nginx/apache 指对了吗?
用户权限对吗?
如果你愿意,可以直接把:
贴出来,我可以帮你精准定位。