在 Ubuntu 上调试 PHP,常见方式取决于你是调试网站运行问题还是调试代码逻辑。下面按“从常用到进阶”给你一个完整指南。
php -v
如果没有安装:
sudo apt update
sudo apt install php php-cli
如果是 Web 环境(Apache / Nginx):
sudo apt install php-fpm
php -d display_errors=1 -d error_reporting=E_ALL your_script.php
编辑:
php --ini | grep "Loaded Configuration File"
常见路径:
/etc/php/8.x/apache2/php.ini
/etc/php/8.x/fpm/php.ini
修改:
display_errors = On
error_reporting = E_ALL
重启服务:
sudo systemctl restart apache2
# 或
sudo systemctl restart php8.x-fpm
error_log() + 日志调试(最实用)error_log("调试信息:" . print_r($data, true));
tail -f /var/log/apache2/error.log
tail -f /var/log/php8.x-fpm.log
✅ 适合生产环境
sudo apt install php-xdebug
确认:
php -v
看到 with Xdebug 即成功。
[xdebug]
zend_extension=xdebug.so
xdebug.mode=debug
xdebug.client_host=127.0.0.1
xdebug.client_port=9003
xdebug.start_with_request=yes
重启 PHP:
sudo systemctl restart php8.x-fpm
launch.json{
"version": "0.2.0",
"configurations": [
{
"name": "Listen for Xdebug",
"type": "php",
"request": "launch",
"port": 9003
}
]
}
✅ 可以单步调试、查看变量、调用栈
var_dump($var);
exit;
phpdbgphpdbg your_script.php
常用命令:
b file.php:10 # 设置断点
r # 运行
s # 单步
p # 打印变量
request_slowlog_timeout = 5s
slowlog = /var/log/php-fpm-slow.log
tail -f /var/log/php-fpm-slow.log
| 场景 | 推荐方式 |
|---|---|
| 快速定位问题 | error_log + 日志 |
| 查看变量 | var_dump / print_r |
| 本地开发 | Xdebug + VS Code |
| 线上问题 | 日志 + 慢日志 |
| CLI 脚本 | phpdbg |
你可以直接告诉我:
我可以一步一步带你配置到能断点调试 ✅