在 Ubuntu 上调试 php-fpm 一般从「日志 → 配置 → 进程状态 → 代码层」逐步排查。下面给你一套实用调试思路,从常见到进阶。
systemctl status php-fpm
# 或(版本不同)
systemctl status php8.1-fpm
查看进程:
ps aux | grep php-fpm
监听端口/套接字:
netstat -lntp | grep php
# 或
ss -lntp | grep php
配置文件通常在:
/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
在 www.conf 或 php.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 -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
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 -l file.php # 语法检查
php file.php # 直接运行
查看:
tail -f /var/log/nginx/error.log
常见原因:
修复示例:
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
确保:
ls -l /run/php/php8.1-fpm.sock
sudo apt install php-xdebug
zend_extension=xdebug
xdebug.mode=debug
xdebug.start_with_request=yes
配合:
如果你愿意,可以告诉我:
我可以帮你精准定位问题。