温馨提示×

ubuntu php-fpm怎么排错

小樊
45
2026-10-16 02:58:27
栏目: 编程语言

在 Ubuntu 上排查 php-fpm 问题,一般按「能不能启动 → 日志说什么 → 配置对不对 → 和 Web 服务是否对接好」这条线来。下面是一套实用排错流程。


一、先看 php-fpm 是否在运行

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

三、关键日志位置(最重要)

php-fpm 错误日志

/var/log/php8.1-fpm.log

或:

/var/log/php-fpm.log

慢日志(性能问题)

在 pool 配置里:

slowlog = /var/log/php-fpm/slow.log
request_slowlog_timeout = 5s

四、检查 php-fpm 配置文件

主配置

/etc/php/8.1/fpm/php-fpm.conf

pool 配置(最常见问题)

/etc/php/8.1/fpm/pool.d/www.conf

重点看:

1️⃣ listen 方式

listen = /run/php/php8.1-fpm.sock
; 或
listen = 127.0.0.1:9000

2️⃣ 权限(socket 模式)

listen.owner = www-data
listen.group = www-data
listen.mode = 0660

五、Web 服务器对接问题(Nginx / Apache)

Nginx 示例

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

六、常见错误速查

502 Bad Gateway

✅ 检查:

  • php-fpm 是否运行
  • socket / 端口是否一致
  • socket 权限

504 Gateway Timeout

✅ 检查:

  • PHP 脚本死循环
  • request_terminate_timeout
  • 数据库慢查询

空白页

✅ 检查:

display_errors = On
error_reporting = E_ALL

或看 php 错误日志

权限 denied

✅ 检查:

  • nginx / php-fpm 用户
  • 目录权限
ps aux | grep php-fpm
ps aux | grep nginx

七、快速自检清单 ✅

php-fpm 运行了吗?
日志有报错吗?
listen 对吗?
nginx/apache 指对了吗?
用户权限对吗?

如果你愿意,可以直接把:

  • Ubuntu 版本
  • PHP 版本
  • 报错信息(502 / 日志)
  • Nginx 或 Apache 配置

贴出来,我可以帮你精准定位。

0 踩