跳转到主内容
websoft网络软件专家 - 深耕网络技术,打造实用软件!

phpinfo能显示Xdebug状态吗_查xdebug扩展信息法【察调】

能,phpinfo()仅显示Xdebug是否加载,不显示调试功能启用状态或运行模式;需结合php -v、xdebug_info()、xdebug_break()及配置检查综合验证。 php info() 能显示 Xdebug 状态吗 能,但只显示「是否已加载」,不显示「是否启用调试功能」或「当前运行模式」。
phpinfo()
里出现
Xdebug
模块区块,仅代表扩展已成功载入;它不会告诉你
xdebug.mode=debug
是否生效、
xdebug.start_with_request=yes
是否配置正确,更不会显示 IDE Key、远程主机、端口等连接参数。 怎么看 Xdebug 是否真正启用调试能力 光靠
phpinfo()
不够,得查运行时实际行为。推荐组合验证: 执行
php -v
:终端输出中若含
with Xdebug v3.x.x
,说明 CLI 模式下扩展已加载 访问
phpinfo()
页面,搜索
Xdebug
,确认有完整配置区块(含
xdebug.mode
、
xdebug.client_host
等字段) 写一行触发断点的代码:
ini_set('xdebug.mode', 'debug');
die(xdebug_info());
——
xdebug_info()
是 Xdebug 3.1+ 提供的函数,会直接输出当前调试上下文,包括是否监听、客户端地址、触发方式等 在 PHP 脚本开头加
xdebug_break()
并用 IDE 连接,看是否真能停住;不能停,大概率是
xdebug.mode
没设对,或网络/ 防火墙 阻断了
xdebug.client_port
(默认 9003) 常见配置错误导致 phpinfo 看得到但调试不工作
phpinfo()
显示 Xdebug 区块,但断点不触发,八成是以下配置没对上:
xdebug.mode
值必须包含
debug
(如
debug,develop
),仅
off
或
develop
不会启动调试器
xdebug.client_host
在 Docker 或远程开发时容易填错:本地开发填
localhost
,Docker 容器内要填宿主机 IP(如
host.docker.internal
或真实 IP),不能填
127.0.0.1
xdebug.start_with_request
默认是
default
(即不自动启动),设为
yes
或
trigger
才可能进断点;若设
trigger
,还得在 URL 加
?XDEBUG_SESSION_START=PHPSTORM
PHP-FPM 和 CLI 的
php.ini
是两套配置,
phpinfo()
显示的是 Web SAPI(如 FPM)的配置,而
php -v
看的是 CLI 的——改错文件就白忙 快速确认 Xdebug 当前状态的命令行法 不用开网页,终端一条命令就能看清关键项: PHP 8.5.5 PHP 8.5.5 是 PHP 8.5 分支的维护更新版本。该版本延续了“小步快跑”的迭代逻辑,通过深度错误修复、底层性能微调以及安全加固,旨在为开发者提供一个更健壮、更高效的运行环境。该版本严格遵守语义化版本规范,不包含破坏性变更。 下载 立即学习 “ PHP免费学习笔记(深入) ”;
php -i | grep -E "(xdebug\.mode|xdebug\.client_|xdebug\.start_with_request|xdebug\.idekey)"
如果什么都没输出,说明 Xdebug 根本没加载(检查
extension=xdebug.so
是否在正确的
php.ini
里,且路径无误);如果输出了但
xdebug.mode
是
off
或不含
debug
,那就只是「挂着没干活」。 最常被忽略的是:Xdebug 4 已移除
xdebug.remote_*
系列旧参数,所有配置都必须用新命名(
xdebug.client_*
),但很多人复制的教程还是 Xdebug 2 的写法,phpinfo 里看着像配对了,其实全被忽略。

相关文章