在 Ubuntu 上给 PHP-FPM 开启调试,一般分几种常见场景。下面按最常用方式给你说明,你可以按需选择。
先确认你用的是哪个 php.ini(php-fpm 通常单独一个)
php --ini
# 或
sudo nano /etc/php/8.1/fpm/php.ini
(版本号按你实际来,如 7.4 / 8.2)
修改以下配置:
display_errors = On
display_startup_errors = On
error_reporting = E_ALL
log_errors = On
sudo systemctl restart php8.1-fpm
适合排查“请求卡死 / 响应慢”
编辑 php-fpm pool 配置:
sudo nano /etc/php/8.1/fpm/pool.d/www.conf
添加或修改:
request_slowlog_timeout = 5s
slowlog = /var/log/php-fpm/slow.log
创建日志目录(如果不存在):
sudo mkdir -p /var/log/php-fpm
sudo chown www-data:www-data /var/log/php-fpm
重启:
sudo systemctl restart php8.1-fpm
查看慢日志:
tail -f /var/log/php-fpm/slow.log
在 www.conf 中:
catch_workers_output = yes
php_admin_value[error_log] = /var/log/php-fpm/php-error.log
php_admin_flag[log_errors] = on
重启后:
tail -f /var/log/php-fpm/php-error.log
sudo apt install php-xdebug
或指定版本:
sudo apt install php8.1-xdebug
编辑:
sudo nano /etc/php/8.1/fpm/conf.d/20-xdebug.ini
内容示例(Xdebug 3):
zend_extension=xdebug
xdebug.mode=debug
xdebug.start_with_request=yes
xdebug.client_host=127.0.0.1
xdebug.client_port=9003
xdebug.idekey=PHPSTORM
sudo systemctl restart php8.1-fpm
php -i | grep xdebug
php -i | grep display_errors
或写个测试文件:
<?php
echo "debug test";
error_reporting(E_ALL);
trigger_error("test error");
如果你能告诉我:
我可以给你更精准的配置方案。