温馨提示×

ubuntu php-fpm怎样调试错误

小樊
48
2026-10-04 10:32:44
栏目: 编程语言

在 Ubuntu 上调试 PHP-FPM 错误,通常可以从以下几个方面入手:


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

1. 找到 PHP-FPM 日志位置

PHP-FPM 的日志通常在:

/var/log/php-fpm.log
# 或(Ubuntu 常见)
/var/log/php7.4-fpm.log
/var/log/php8.1-fpm.log

也可以在配置文件中确认:

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

关注:

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

查看日志:

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

二、查看 PHP 脚本错误日志

1. php.ini 中的错误设置

编辑:

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

确保:

display_errors = Off        ; 生产环境
log_errors = On
error_log = /var/log/php_errors.log

创建日志文件:

sudo touch /var/log/php_errors.log
sudo chown www-data:www-data /var/log/php_errors.log

查看:

tail -f /var/log/php_errors.log

三、开启 PHP 错误显示(调试时)

仅本地/开发环境使用

display_errors = On
display_startup_errors = On
error_reporting = E_ALL

修改后重启 PHP-FPM:

sudo systemctl restart php8.1-fpm

四、查看 Nginx / Apache 错误(如果是 Web 访问)

Nginx

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

常见问题:

  • 502 Bad Gateway → PHP-FPM 没启动或 socket 错
  • 504 → PHP 执行超时

五、确认 PHP-FPM 是否正常运行

systemctl status php8.1-fpm

或:

ps aux | grep php-fpm

测试 socket:

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

Nginx 中需对应:

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

六、常见错误及排查

1. 502 Bad Gateway

  • PHP-FPM 未启动
  • socket 路径不一致
  • 权限问题(www-data)

2. 空白页面

  • PHP 报错但被隐藏
  • 查看 php_errors.log

3. 脚本超时

max_execution_time = 300

Nginx:

fastcgi_read_timeout 300;

七、开启 PHP-FPM 调试模式(高级)

php-fpm.conf:

log_level = debug

重启后日志会非常详细。


八、快速调试建议流程

  1. tail -f php-fpm.log
  2. tail -f php_errors.log
  3. tail -f nginx/error.log
  4. 访问页面,观察报错
  5. 根据错误修正代码或配置

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

  • Ubuntu 版本
  • PHP 版本
  • Web 服务器(Nginx / Apache)
  • 具体报错信息(如 502 / 白屏 / 日志内容)

我可以给你更精准的排查方案。

0 踩