Ubuntu 上 PHP-FPM 故障排查清单
一 快速定位服务与连通性
sudo systemctl status php8.1-fpmsudo systemctl restart php8.1-fpmsudo systemctl enable php8.1-fpmpgrep php-fpmss -plnt | grep php 或 netstat -plnt | grep phpls -l /run/php/php8.1-fpm.socksudo apt-get install php8.1-fpm二 配置与权限核对
listen = 127.0.0.1:9000listen = /run/php/php8.1-fpm.socklisten.owner = www-datalisten.group = www-datalisten.mode = 0660fastcgi_pass 127.0.0.1:9000;fastcgi_pass unix:/run/php/php8.1-fpm.sock;sudo nginx -t,再重载:sudo systemctl reload nginxsudo systemctl restart php8.1-fpm三 日志分析与慢查询定位
/var/log/php8.1-fpm.log、/var/log/php-fpm.log、/var/log/php-fpm/error.logsudo tail -f /var/log/php8.1-fpm.logsudo tail -f /var/log/nginx/error.log
connect() failed (111: Connection refused) → PHP-FPM 未运行或端口不对No such file or directory → Unix 套接字路径不一致slowlog = /var/log/php-fpm/slow.logrequest_slowlog_timeout = 5ssudo tail -f /var/log/php-fpm/slow.logphp_admin_flag[log_errors] = onphp_admin_value[error_log] = /var/log/php-fpm/custom_error.logsudo systemctl restart php8.1-fpm四 常见故障场景与修复要点
systemctl status php8.1-fpm 与 journalctl -xe 查看具体报错五 进阶诊断命令
sudo strace -f -ff -t -d -p <PHP-FPM-PID>ss -plnt | grep php 或 netstat -plnt | grep phpls -l /run/php/php8.1-fpm.sockdmesg | grep apparmorjournalctl -u php8.1-fpm -f