在 Debian 下开启 PHP 调试,通常分为 几种常见场景。下面按“由浅到深”给你一个完整、实用的说明。
php.ini先找到你的 php.ini 位置:
php -i | grep "Loaded Configuration File"
常见路径:
/etc/php/8.2/cli/php.ini/etc/php/8.2/apache2/php.ini/etc/php/8.2/fpm/php.ini编辑对应文件:
sudo nano /etc/php/8.2/apache2/php.ini
修改或取消注释以下内容:
display_errors = On
display_startup_errors = On
error_reporting = E_ALL
log_errors = On
error_log = /var/log/php_errors.log
⚠️ 生产环境不建议开启
display_errors
sudo systemctl restart apache2
sudo systemctl restart php8.2-fpm
sudo systemctl restart nginx
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
CLI 默认不输出 HTML,直接显示错误:
php -l test.php # 语法检查
php test.php # 直接运行
临时开启错误(脚本内):
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
sudo apt update
sudo apt install php-xdebug
确认安装:
php -v
应看到类似:
with Xdebug v3.x
编辑配置文件:
sudo nano /etc/php/8.2/mods-available/xdebug.ini
推荐配置(本地开发):
zend_extension=xdebug.so
[xdebug]
xdebug.mode=develop,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
}
]
}
浏览器访问页面 → VS Code 打断点 ✅
var_dump($var);
print_r($var);
var_export($var);
error_log(print_r($var, true));
display_errors = Off
log_errors = On
error_reporting = E_ALL & ~E_NOTICE
| 场景 | 推荐方式 |
|---|---|
| 查看报错 | 开启 error_log |
| CLI 调试 | php -l + var_dump |
| Web 调试 | display_errors + 日志 |
| 断点调试 | Xdebug + IDE |
如果你愿意,可以告诉我:
我可以给你 精确到命令级别 的配置方案。