在 Ubuntu 上调试 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
编辑:
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
仅本地/开发环境使用
display_errors = On
display_startup_errors = On
error_reporting = E_ALL
修改后重启 PHP-FPM:
sudo systemctl restart php8.1-fpm
sudo tail -f /var/log/nginx/error.log
常见问题:
502 Bad Gateway → PHP-FPM 没启动或 socket 错504 → PHP 执行超时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;
php_errors.logmax_execution_time = 300
Nginx:
fastcgi_read_timeout 300;
php-fpm.conf:
log_level = debug
重启后日志会非常详细。
tail -f php-fpm.logtail -f php_errors.logtail -f nginx/error.log如果你愿意,可以告诉我:
我可以给你更精准的排查方案。