VisualStudioCode调试PHP
Visual Studio Code 调试 PHP
2021-11-04
更新解决因端⼝配置错误导致vscode接收不到调试请求⽆法调试的问题
2018/12/4 更新
Nginx + 下与 Visual Studio Code 配合调试
必需环境
1. Visual Stduio Code
2. PHP(当前版本8.0.7)
3. XDebug Application Library(dll)(ver3.0.4)
4. Web服务器 IIS(参考环境 Win10)
基本道理
visual studio和vs code的区别Web服务器⽤来运⾏Http请求,PHP接收IIS调⽤运⾏PHP请求,XDebug截获运⾏,传递到VS Code——以上为个⼈理解
安装
1. Visual Studio Code默认安装即可,安装插件
2. PHP默认安装即可
3. 下载,下载时注意版本的选择,如不知应下载哪种版本可以将phpinfo()的输出粘贴到⽹站⾃动识别。下载后是⼀个 DLL ⽂件,保存在
PHP扩展⽬录,windows下是/ext
4. IIS服务器默认安装运⾏,配置好与PHP的FastCgi即可
配置
1. 确认 Visual Studio Code 安装并启⽤了PHP Debug插件
2. 开启PHP本⾝的ini配置⽂件,并在Dynamic Extension块中(⼀般是整个⽂本最后)新增 XDebug 的块,内容为:
[xdebug]
zend_extension = "php_xdebug-3.0.4-8.0-vs16-nts-x86_64.dll"
xdebug.client_port = 9000
<_enable = On
<_autostart = On
xdebug.start_with_request=yes
zend_extension是下载的 XDebug 动态连接⽂件的地址,其值可以是相对地址或绝对地址。此处默认将dll⽂件放到了PHP安装⽬录下的ext路径下,因此地址是相对路径。client_port是PHP监听的端⼝,web服务器将PHP请求发送到此端⼝由PHP监听程序接收并交给内核编译执⾏,因此client_port要与vscode中调试配置⽂件的端⼝设定保持⼀样。下图为vscode中的调试配置⽂件⽚段
3. XDebug本⾝没有可配置的地⽅
4. IIS服务器配置好和PHP的关系即可
开启调试
1. 对要调试的PHP⽂件打上断点
2. 点击 VS Code 左侧⼯具栏上的Debug|调试按钮,在顶部选择框中选择Listen for XDebug(或新增⼀个配置)
3. 选择后可以看到其配置⽂件,通常⽆需更改其内容
4. 按F5启动调试,按下后 VS Code 界⾯可以看到顶部多了⼀个调试⼯具栏
5. 在浏览器中运⾏要调试的地址,配置⽆误的话将在运⾏到断点时切换回 VS Code,此时可以看到程序停在断点处,可以使⽤
F10、F11快捷键向下继续运⾏,⿏标悬停在变量处也可以查看到变量值
2018/12/4 更新
Nginx 和 php-cgi 的配合
当不使⽤ IIS 作为服务器时,可以使⽤这两个家伙的组合。Nginx 的启动使⽤快捷⽅式,⽆需参数,如下
d:\applications\
检查 PHP 要使⽤的配置⽂件中,有关 XDebug 的配置与即将运⾏的 PHP 是否⼀致,例如配置⽂件中如果 _port = 8000 ⽽php 监听的是默认 9000 端⼝,就会⽆法截获调试信息。当前 PHP 配置⽂件使⽤“指定的php-dev.ini”,端⼝默认9000,在Windowns环境下写了⼀个bat⽤来启动和关闭,如下
@echo off
echo Starting
d:\applications\ -b 127.0.0.1:9000 -c d:\applications\php\php-dev.ini
启动后 Nginx 没有界⾯,在后台运⾏,PHP有⼀个Console窗⼝不可关闭。检查 VS Code 中配置是否正确,点击左侧⼯具栏Debug按钮,选择调试界⾯中要使⽤的配置⽂件,可以点击齿轮按钮查看配置
⽂件中配置是否符合当前环境(如第四步试⽤中内容)。如配置⽆误,如第四步试⽤中描述,即可截获调试内容。
⼩⼼!
1. 核对 PHP 的配置⽂件,默认端⼝号是否改变,如果 PHP ⾃⾝运⾏端⼝改变,调试信息需要跟着变,建议保留默认的 9000
2. 核对 PHP 配置⽂件中 XDebug 部分,如果特殊需要,只填写最少的zend_extension、xdebug_remote_enable、xdebug_remote_autostart三个
就⾏,这样未设置的部分就会按照默认进⾏,如会监听默认9000端⼝。今天就踩了个⼩坑,配合 PHPSTORM 调试时,XDebug 部分修改了端⼝为 9009,导致运⾏时 VS Code 截获不到调试信息。修改为只剩三个配置项时,成功。
3. 冷静细致,php 配置⽂件、配置⽂件中 XDebug 部分、VS Code 调试配置(launch.json)三⼤位的内容要能配合得上,尤其是端⼝
号,才能成功。
4. 发现,⽹上 N 多⽂章说的浏览器需要安装插件似乎不是“必需”的,调试时使⽤ QQ 浏览器,未安装或禁⽤了Xdebug Helper后⼀样可以。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论