准备
-
下载xdebug插件
XDebug在线检测下载
上面的链接可以自动检测适合你的插件版本
你只需要用PHP输出 phpinfo() 然后复制全部,粘贴进去 -
下载 PHP Debug 和 PHP Intelephense 在 VSCode 里
在 VSCode 扩展里直接搜索这两个名字就好
配置
- 把下载好的 XDebug 文件移动到 PHP 安装目录的 ext 文件夹下,这样在第二步就不需要用绝对路径,可以直接写文件名
- 在 PHP 安装目录里,有 php.ini 文件,添加如下
- XDebug 版本3.X.X
//XDebugPath是XDebug插件的绝对路径,记得加文件名全称
zend_extension=XDebugPath
//设置 Debug 模式,这是在3.X.X上独有的,下边两句不用修改
xdebug.mode=debug
xdebug.start_with_request=yes
//port 是 PHP 监听端口,3.X.X版本默认端口为9003
xdebug.client_port=port
//host 是 PHP 服务主机地址,本地的话直接写 localhost 或 127.0.0.1
xdebug.remote_host=host
- XDebug 版本2.X.X
//XDebugPath是XDebug插件的绝对路径,记得加文件名全称
zend_extension=XDebugPath
//下边两句不用修改
xdebug.remote_enable = 1
xdebug.remote_autostart = 1
//port 是 PHP 监听端口,2.X.X版本默认端口为9001
xdebug.client_port=port
//host 是 PHP 服务主机地址,本地的话直接写 localhost 或 127.0.0.1
xdebug.remote_host=host
- VSCode 文件 =》 首选项 =》 设置 =》扩展
找到PHP,在settings.json中编辑
加入或设置下边两句,路径根据自己环境修改,记得双斜杠
"php.executablePath": "E:\\PHP\\Extensions\\php\\php7.3.4nts\\php.exe",
"php.validate.executablePath": "E:\\PHP\\Extensions\\php\\php7.3.4nts\\php.exe",
- 运行调试,设置launch.json
port 端口改为上边ini文件对应端口
重启环境,加断点调试
问题
- 首先确保XDebug环境已就绪,可phpinfo()查看插件,如果有XDebug版本显示,就证明插件安装成功
- 确保端口号没有被占用,以及一致
- 启动调试后,很可能中断不了,请仔细检查上边每一项
- 中断不了这个问题很玄学,我每次得折腾好久,明明各项都对,就是中断不了,反复改一改然后就莫名其妙的又好了,接着我尝试复现错误,但是复现不了,所以很玄学
- 关于调试超时504解决办法,设置环境的超时即可,例如60秒设置为3000秒,还有设置环境配置