vscode调试php(解决vscode远程调试无效的问题)
问题说明(apache可以,nginx依旧不行):
vscode调试单个文件正常,就是无法远程调试(比如通过浏览器运行时调试),折腾了一整天,最后发现是php.ini 中少了两项配置所导致:
这个开关控制Xdebug是否应该尝试联系一个正在监听主机和端口的调试客户端,这些主机和端口是用xdebug.remote_host和xdebug.remote_port设置的。如果不能建立连接,脚本将继续进行,就像这个设置为0一样。
通常,您需要使用特定的 HTTP GET/POST 变量来启动远程调试,当此设置设置为 1 时,Xdebug 将始终尝试启动远程调试会话并尝试连接到客户端,即使 GET/POST/COOKIE 变量不存在。
vscode配置xdebug步骤
下载xdebug
*[xdebug]: 我用的版本为2.9.4
1. 查看PHP版本
2. 查找对应的xdebug
3. 放到php更目录下的ext目录下
4. 或者通过phpstudy配置xdebug
注意:phpstudy配置完成后查看php.ini,查找xdebug.remote_autostart =1,如果没有,就在xdebug模块追加,修改xdebug.remote_enable 等于 1 或者 On,修改debug.trace_output_dir和 xdebug.profiler_output_dir的路径
5. 配置php.ini
1. 配置php.ini文件
2. 配置vscode
3. vscode 下载PHP Debug,修改配置信息
4. 测试vscode调试(直接上图)
1. 选择调试模式为Listen for Xdebug,打好断点
2. 打开浏览器,进入编写好的程序
3. 打开调试,然后刷新页面,就可以进入断点
问题一:
倒腾了一整天,nginx使用xdebug可以连接,就是不能进入断点调试,下面是xdebug返回的日志信息。
解决办法:
无意间发现phpstudy的fastcgi的默认端口号为9001,和我设置的xdebug的端口号重复了,反复了好几遍,apache能进去,nginx进不去。到最后发现是是个乌龙,所以再次建议,这样的端口号尽可能的整大一点。
问题二:(日志报以下错误)
解决办法:
连接超时: 先去看下端口号,vscode每个项目下面都有个.vscode文件夹,launch.json这个文件就是PHP Debug的配置文件,也就是每个项目可以单独配置PHP Debug
以上就是CRMEB讲解的关于解决vscode远程调试无效的问题的所有内容名,有不懂的地方可以在下方留言,互相讨论学习!