温馨提示×

ubuntu php-fpm怎样排错

小樊
43
2026-09-16 13:52:08
栏目: 编程语言

在 Ubuntu 上排查 PHP-FPM 问题,通常可以按下面一套“由外到内”的流程来做。下面按常见场景 + 排查命令整理,实用为主。


一、先确认 PHP-FPM 是否在运行

systemctl status php-fpm
# 或(Ubuntu 常见)
systemctl status php8.1-fpm

✅ 正常应是 active (running)
❌ 如果失败,看错误信息

启动 / 重启:

sudo systemctl start php8.1-fpm
sudo systemctl restart php8.1-fpm

二、查看 PHP-FPM 错误日志(最重要)

1️⃣ PHP-FPM 错误日志位置

通常在:

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

或

/var/log/php-fpm.log

查看:

tail -n 100 /var/log/php8.1-fpm.log

常见错误:

  • pool www 配置错误
  • permission denied
  • unable to bind address

三、Web 服务器(Nginx / Apache)是否正确对接

Nginx 常见配置

location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/run/php/php8.1-fpm.sock;
}

检查 socket 是否存在:

ls -l /run/php/php8.1-fpm.sock

❌ 不存在 → PHP-FPM 没启动或配置错


四、PHP-FPM 配置文件检查

主配置

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

Pool 配置(最常见问题)

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

重点看:

listen = /run/php/php8.1-fpm.sock
user = www-data
group = www-data

测试配置是否正确:

php-fpm8.1 -t

五、权限问题(非常常见)

1️⃣ Socket 权限

Nginx 用户通常是 www-data

ps aux | grep nginx
ps aux | grep php-fpm

确保:

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

2️⃣ 项目目录权限

sudo chown -R www-data:www-data /var/www/html

六、PHP 本身报错(白屏 / 500)

打开错误显示(开发环境)

/etc/php/8.1/fpm/php.ini
display_errors = On
error_reporting = E_ALL

重启:

sudo systemctl restart php8.1-fpm

查看 PHP 错误日志:

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

七、502 Bad Gateway 常见原因

  1. PHP-FPM 没启动
  2. socket 路径不一致
  3. socket 权限错误
  4. PHP 脚本死循环 / 超时

快速验证:

sudo -u www-data php /var/www/html/index.php

八、性能 / 进程问题

查看进程数:

ps aux | grep php-fpm

www.conf 中关注:

pm = dynamic
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20

九、一键排错清单 ✅

systemctl status php8.1-fpm
php-fpm8.1 -t
tail -n 50 /var/log/php8.1-fpm.log
ls -l /run/php/php8.1-fpm.sock
nginx -t

如果你愿意,可以告诉我:

  • Ubuntu 版本
  • PHP 版本
  • Nginx 还是 Apache
  • 具体报错(502 / 500 / 白屏 / 命令行)

我可以帮你精准定位。

0 踩