上一篇说了宝塔 xdebug idea调试本地代码,但是用idea php插件调试服务器上的代码时,有一些问题,断点可以监听到,但是可能是php插件版本的问题,idea进入断点状态后,没有正在运行行的高亮显示,按下一步也没有反应,只能按全部放过,来执行完毕,所以又用vsCode来试,结果是可以的
安装宝塔 安装xdebug插件 修改配置文件 重新加载php配置,在上一篇文章中的一样,这里就不在重复了
宝塔 xdebug idea 调试 php_qq_31683775的博客-CSDN博客
需要注意的是 php.ini 文件的配置,和前面的文章中有一项不同
xdebug.remote_connect_back= 1
这里需要将 1 改为 0 , 因为1是访问web服务开启xdebug,连接本地idea/vscode时,连接idea/vscode的ip从web服务器的请求来源中获取,而我们本地的 idea/vscode公网ip没有端口映射,拿着公网ip,是访问不到我们的idea/vscode服务的,
所以要改成0,使用xdebug.remote_host = 127.0.0.1,来配置指定的xdebug调试服务端的ip,
之后,我们会配置一个隧道,把服务器上的指定端口,映射到我们本机idea/vscode调试服务的端口,这样,访问服务器的指定端口,比如9009,就等于直接访问idea/vscode调试服务的端口,这样就能进行调试服务的通信了
php.ini xdebug的配置片段
[XDebug]
;xdebug.profiler_append = 0
;xdebug.profiler_enable = 1
;xdebug.profiler_enable_trigger = 0
;xdebug.profiler_output_dir ="D:\BtSoft\temp\xdebug"
;xdebug.trace_output_dir ="D:\BtSoft\temp\xdebug"
;xdebug.profiler_output_name = "cache.out.%t-%s"
;xdebug.remote_enable = 1
;xdebug.remote_handler = "dbgp"
;xdebug.remote_host = "127.0.0.1"
;zend_extension=php_xdebug.dll
;zend_extension=php_xdebug.dll
;用来显示错误信息
display_errors = On
html_errors = On
;显示堆栈信息
xdebug.show_local_vars = 1
xdebug.max_nesting_level = 50
xdebug.var_display_max_depth = 6
xdebug.dump_once = On
xdebug.dump_globals = On
xdebug.dump_undefined = On
xdebug.dump.REQUEST = *
xdebug.cli_color = 2
;显示性能信息
xdebug.profiler_enable_trigger = on
xdebug.collect_params = On
xdebug.collect_return = On
xdebug.profiler_enable = On
xdebug.profiler_output_name = cachegrind.out.%t.%p
xdebug.trace_output_dir = "\www\server\temp\xdebug"
xdebug.profiler_output_dir ="\www\server\temp\xdebug"
;远程调试配置信息
;开启远程调试
xdebug.remote_enable = On
;远程处理协议
xdebug.remote_handel = dbgp
;IDE所在机器IP
;xdebug.remote_host = 127.0.0.1
;端口号
xdebug.remote_port = 9009
;IDE KEY
xdebug.idekey = "mykey"
xdebug.remote_connect_back= 0
xdebug.remote_autostart=1
xdebug.remote_log = "\tmp\xdebug.log"
安装 FinalShell 连接服务器 配置一条隧道
宝塔 和 服务器 开放端口
vscode安装php插件
配置 launch.json 文件,在php项目/.vscode/launch.json 没有该文件则新建
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Listen for Xdebug",
"type": "php",
"request": "launch",
"port": 9009,
"pathMappings": {
"/www/wwwroot/dushan.xihewh.com":"${workspaceRoot}"
}
}
]
}
这里的9009,就是我们在php.ini文件中配置的 xdebug.remote_port = 9009,vscode为开启一个监听9009端口的服务,等待服务器的xdebug服务来连接
打上断点,刷新页面,进入断点