在 Ubuntu 上调试 PHP,常见方式包括 日志调试、Xdebug 断点调试、性能分析 等。下面按「从简单到专业」给你一套完整方案。
sudo tail -f /var/log/apache2/error.log
# 或
sudo tail -f /var/log/nginx/error.log
编辑 php.ini:
php -i | grep "Loaded Configuration File"
常见路径:
/etc/php/8.2/apache2/php.ini
/etc/php/8.2/fpm/php.ini
修改:
display_errors = On
error_reporting = E_ALL
log_errors = On
重启服务:
sudo systemctl restart apache2
# 或
sudo systemctl restart php8.2-fpm
<?php
echo "<pre>";
var_dump($data);
print_r($data);
var_export($data);
exit;
或:
error_log(print_r($data, true));
sudo apt update
sudo apt install php-xdebug
确认安装:
php -v
编辑:
sudo nano /etc/php/8.2/mods-available/xdebug.ini
示例配置(Xdebug 3):
zend_extension=xdebug.so
xdebug.mode=debug
xdebug.client_host=127.0.0.1
xdebug.client_port=9003
xdebug.start_with_request=yes
重启:
sudo systemctl restart apache2
# 或
sudo systemctl restart php8.2-fpm
launch.json{
"version": "0.2.0",
"configurations": [
{
"name": "Listen for Xdebug",
"type": "php",
"request": "launch",
"port": 9003
}
]
}
php -r "var_dump(phpinfo());"
或用 Xdebug:
export XDEBUG_SESSION=1
php your_script.php
xdebug.mode=profile
xdebug.output_dir=/tmp/xdebug
生成 cachegrind 文件,用:
sudo apt install kcachegrind
适合性能瓶颈分析,但需要注册账号。
| 场景 | 推荐方式 |
|---|---|
| 快速看变量 | var_dump / print_r |
| 页面报错 | 错误日志 |
| 复杂逻辑 | Xdebug + VS Code |
| 性能问题 | Xdebug profile |
| 线上问题 | error_log |
# 1. 安装 Xdebug
sudo apt install php-xdebug
# 2. 配置
sudo nano /etc/php/8.2/mods-available/xdebug.ini
# 3. 重启
sudo systemctl restart apache2
# 4. VS Code 打断点调试
如果你愿意,可以告诉我:
我可以给你一套 完全贴合你环境的调试配置。