首先,安装了宝塔面板,并配置了一个普通的php站点(zfh.215000.com)
修改网站对应的php.ini如下:
[XDebug] xdebug.profiler_append = 0 xdebug.profiler_enable = 1 xdebug.profiler_enable_trigger = 0 xdebug.profiler_output_dir ="C:\BtSoft\temp\xdebug" xdebug.trace_output_dir ="C:\BtSoft\temp\xdebug" xdebug.profiler_output_name = "cache.out.%t-%s" ; 上面几个一般不用改,查看下面几个设置 xdebug.remote_enable = 1 xdebug.remote_autostart = 1 xdebug.remote_handler = "dbgp" xdebug.remote_host = "zfh.215000.com" xdebug.remote_port = 9018 zend_extension="C:\BtSoft\php\74\ext\php_xdebug.dll"
这里有必要说明一下,有些目录是已经默认配置了的,对比没配置的才需要添加并设置。(remote host 表示ide的服务器,断点流程为:浏览器插件 –> 服务器xdebug –> ide开发工具,也就是如何让 xdebug 找到并发送数据到 ide)
修改完毕后,重载php配置,否则ini配置不生效。
此时,先使用phpinfo查看是否存在xdebug,如果存在一般可以看到类似字样:
xdebug
xdebug support | enabled |
---|---|
Version | 2.9.6 |
Support Xdebug on Patreon, GitHub, or as a business |
Debugger | enabled |
---|---|
IDE Key | DESKTOP-LR8M2TK$ |
只要存在xdebug,以及显示版本号,一般就说明已经正确安装了xdebug,也就是php.ini设置正确。
接下来,在phpStorm中断点。
在phpStorm中打开该站点目录环境(依然是本机,不同服务器未尝试过,理论上应该也可以)。
1.在settings找到php配置,配置php以及debug的位置(和上面php.ini一致)
2.在php配置的子项debug配置,编辑端口9018(与php.ini一致)
3.新建一个测试文件,打断点,并点击监听(无需启动,直接访问宝塔中的网站)。(需要安装浏览器插件,请使用edge以及扩展 xdebug helper并在该需要调试的页面打开)
4.访问页面时,phpStorm自动提示是否监听bedug。确认后即可自动监听该网站debug,可在settings ==》 php ==》 server中删除,或关闭phpStorm右上角的监听。
5.如果不生效,在phpstorm 找到 php –> server –> 添加一个 server,name随意,host为域名、port按实际填写,后面的 debugger 为 xdebug,保存即可。
基本按键:
f7(Step into):进入子函数
f8(Step over):下一步
shift+f8(Step Out):退出子函数
alt+f9(Run to Cursor):到下一个断点(如果没有断点,终止)
alt+f8(Evaluate Expression):提供表达式计算(下方已提示出所有可用变量与对应值)
没打断点也一直自动debug?点击顶部菜单的run==》Break at first line in PHP Scripts,取消勾选即可