Xdebug原理是PHP开始运行时主动连接设置的远程地址和端口,进行数据交互。
所以在PHPSTORM里点击小电话图标是启用了端口监听,等待Xdebug的连接。
# 启用调试
xdebug.remote_enable=1
# 远程端口
xdebug.remote_port=9100
# 远程地址,如果不设置,Xdebug会从$_SERVER头里取到客户IP进行连接
xdebug.remote_host=127.0.0.1
# 与调试WEB页面不同,命令行运行PHP没有HTTP头来激活xdebug,所以调试命令行程序时启用该项
; xdebug.remote_autostart=1
# 该选项不知道具体作用是什么,Chrome的调试插件会自动附加这个头,phpstorm配置调试时候也会要求填写这个头,但是实际测试三处填写不一样并不会影响调试,所以我在配置文件中没有配置这个值。
; xdebug.idekey="PHPSTORM"
因为调试时候是Xdebug连接我的端口,但是运营商给我的时内网IP,这个问题造成不能调试。解决办法也有,就是将我本地的端口映射到我的VPS上,然后xdebug.remote_host设置为我的VPS地址,相当于用VPS做一个中转。
有两种方案,一是使用我路由器上的FRP映射,但是我的LinuxVPS在国外,延迟太严重。
另一种就是在我的阿里的WindosVPS上使用vIDC20进行映射。非常好用的小工具,但是这个东西会报毒,所以大家慎用。
服务器脚本:
sets port=VPS_PORT pwd=524edf5s65fyj5m:2bt8d5m21ctf
vidcs pwd=VPS_PWD enable=true客户端脚本:
mtcpr 127.0.0.1:9100 9100 VPS_IP VPS_PORT VPS_PWD Xdebug
这样就可以了。
文章评论