温馨提示×

ubuntu php-fpm怎样调试

小樊
42
2026-09-07 11:11:41
栏目: 编程语言

在 Ubuntu 上调试 php-fpm 一般从「日志 → 配置 → 进程状态 → 代码层」逐步排查。下面给你一套实用调试思路,从常见到进阶。


一、确认 php-fpm 是否正常运行

systemctl status php-fpm
# 或(版本不同)
systemctl status php8.1-fpm

查看进程:

ps aux | grep php-fpm

监听端口/套接字:

netstat -lntp | grep php
# 或
ss -lntp | grep php

二、查看 php-fpm 错误日志(最重要)

1️⃣ php-fpm 错误日志

配置文件通常在:

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

查看错误日志路径:

grep -R "error_log" /etc/php/8.1/fpm/

常见位置:

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

查看日志:

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

2️⃣ PHP 脚本错误日志

www.confphp.ini 中:

php_admin_value[error_log] = /var/log/php-fpm-error.log
php_admin_flag[log_errors] = on

查看:

tail -f /var/log/php-fpm-error.log

三、开启 PHP 错误显示(开发环境)

临时调试(不推荐生产)

php -i | grep php.ini

编辑:

sudo vim /etc/php/8.1/fpm/php.ini

修改:

display_errors = On
error_reporting = E_ALL

重启:

sudo systemctl restart php8.1-fpm

四、用 php-fpm status 页面(非常有用)

1️⃣ 开启 status

www.conf 中:

pm.status_path = /status

Nginx 配置:

location = /status {
    fastcgi_pass unix:/run/php/php8.1-fpm.sock;
    include fastcgi_params;
}

访问:

http://your-domain/status

可看到:

  • 活跃进程
  • 空闲进程
  • 请求数
  • 慢请求

五、慢日志(排查卡死)

www.conf

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

查看:

tail -f /var/log/php-fpm-slow.log

六、命令行直接调试 PHP(排除 fpm)

php -l file.php      # 语法检查
php file.php         # 直接运行

七、Nginx + php-fpm 常见错误

502 Bad Gateway

查看:

tail -f /var/log/nginx/error.log

常见原因:

  • sock 文件路径不对
  • php-fpm 没启动
  • 权限问题

修复示例:

fastcgi_pass unix:/run/php/php8.1-fpm.sock;

确保:

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

八、使用 Xdebug(专业调试)

安装

sudo apt install php-xdebug

配置

zend_extension=xdebug
xdebug.mode=debug
xdebug.start_with_request=yes

配合:

  • PhpStorm
  • VS Code

九、快速排查清单 ✅

  • [ ] php-fpm 是否运行
  • [ ] 错误日志是否打开
  • [ ] nginx/fpm sock 是否匹配
  • [ ] 是否有慢请求
  • [ ] 是否权限问题(www-data)
  • [ ] 代码是否有 fatal error

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

  • Ubuntu 版本
  • PHP 版本
  • Web 服务(Nginx / Apache)
  • 具体报错信息

我可以帮你精准定位问题

0