?
在很多年前,就想在phpstorm上安装一个xdebug了。但因为太忙,没装成。
一年前,无意中,按教程来,安装成功了。后面,因为php版本升级,又没办法用了。由于项目忙,无奈放弃了,还是按老办法,echo,记日志之类的。
最近,因为jwt的问题,老是报下面的错误。
?网上也找不到解决的办法,想着看看内部源代码吧,但是层层嵌入的太多。想着用xdebug调试看。
于是在网上,各种搜索,都还是xdebug2.0的配置,当时没意识到,在每次运行代码的时候,都提示:
waiting for incoming connection with ide key ‘xxx‘
反复设置,都是报这个错。在抓逛中,发现php.ini里的配置,设置了不生效。并且之前必用的remote_**参数,在Xdebug3里都被弃用了。
?才发现,应该找一找Xdebug3的配置。不搜不知道,一搜才发现,这个配置的差别也太大了一点。
Xdebug3前的配置:
[xdebug]
zend_extension ="D:/wamp64/bin/php/php7.0.23/zend_ext/php_xdebug-2.5.5-7.0-vc14-x86_64.dll" # xdebug 下载链接(https://xdebug.org/download.php),wamp集成环境会自带xdebug插件
xdebug.remote_enable = On # 开启远程调试
xdebug.profiler_enable = On
xdebug.profiler_enable_trigger = On
xdebug.profiler_output_name = cachegrind.out.%t.%p
xdebug.profiler_output_dir ="D:/wamp64/tmp"
xdebug.show_local_vars=0
xdebug.idekey=PHPSTORM # 非常重要,务必记住
xdebug.remote_enable = On
xdebug.remote_host=localhost
xdebug.remote_port=9000 # 端口ID,phpstorm 设置须一致
xdebug.remote_handler=dbgp
重点来了, Xdebug3的最正确配置:
;[xdebug]
zend_extension ="D:/wamp64/bin/php/php7.4.26/ext/php_xdebug.dll"
xdebug.idekey="PHPSTORM"
xdebug.client_host=localhost
; 端口ID,phpstorm 设置须一致
xdebug.client_port=9010
;开启xdebug支持,不同的mode的不同的用途,详细说明请看官方文档
xdebug.mode = develop,debug,profile,trace ;如果要多个模式一起开启,就用`,`分隔开就行
xdebug.profiler_append = 0
xdebug.profiler_output_name = cachegrind.out.%p
xdebug.start_with_request = default|yes|no|trigger ;这里与原来不同了,原来如果要开启trace或profile,用的是enable_trace,enable_profile等字段
xdebug.trigger_value=StartProfileForMe ;这里就是原来的profile_trigger_value,trace_trigger_value
xdebug.output_dir = /tmp ;输出文件路径,原来是output_profiler_dir,trace_dir分别设置,现在统一用这个设置就可以了
重启wamp server,再运行程序,OK。最重要的是xdebug.mode的debug需要开启。
?看着这些箭头,成就感油然而生。解决了,多年来一直想解决的问题。再也看不到“waiting for incoming connection with ide key ‘xxx‘”这个问题了。
越来越佩服自己解决问题的能力。
希望对遇到该问题的人有帮助。
?
|