XAMPP环境下用phpStorm+XDebug进行断点调试的配置

折腾了整整一个下午,总算完成了phpStorm+XDebug的断点调试设置。下面情况针对本机进行调试,远程调试差距不大。

具体过程:

  1. 服务器端(本地调试的情况下就是在本机)安装好XAMPP,停止apache服务(注意,如果直接退出XAMPP,是不会停止apache的)
  2. 在安装目录下找到php.ini,类似于D:\xampp\php\php.ini,并打开
  3. 找到被注释掉的项目并按如下设置:
    zend_extension = "D:\xampp\php\ext\php_xdebug.dll"(根据实际情况确定)
    xdebug.remote_enable =1
    xdebug.remote_handler = "dbgp"
    xdebug.remote_host = "localhost"
    xdebug.remote_mode = "req"
    xdebug.remote_port = 9000
    

    其中remote_host 是指调试客户端的地址,即IDE所在的IP,同理remote_port 是客户端的端口,这两项在远程调试的情况下注意修改

  4. 保存文件,打开apache,这时候在CMD里输入 D:\xampp\php\php.exe -m 看到xdebug,说明开启成功。至此,服务器端配置完毕
  5. 下面是客户端调试,打开phpStorm,进入File>Settings>PHP>Servers,这里要填写服务器端的相关信息,name填localhost,host填localhost,port填80,debugger选XDebug
  6. 进入File>Settings>PHP>Debug,看到XDebug选项卡,port填9000,其他默认
  7. 进入File>Settings>PHP>Debug>DBGp Proxy,IDE key 填 PHPSTORM,host 填localhost,port 填80
  8. 点OK退出设置。
  9. 打开浏览器,如果是用chrome或者Firefox可以找到对应的XDebug工具,工具的设置里的IDE KEY填上PHPSTORM,把localhost加入到白名单,以后调试的时候把工具启用就好了。如果是用其他浏览器,可以访问http://www.jetbrains.com/phpstorm/marklets/,在右边填上PHPSTORM,点generate,把下面的链接添加到收藏夹,方便调用。
  10. 在phpStorm里打开监听,就是一个电话一样的按钮。
  11. 在浏览器里打开XDebug工具,访问localhost,与phpStorm连接成功!

15 Comments

  1. 不想发言

    我一直欠缺的一步就是firefox和chrome的xdebug插件这一步,搞得我对那个小电话的功能一直莫名其妙。看了楼主的博客,才明白这原来就是phpstorm一直所说的 zero configuration的功能。

    • 在北极吃冰条

      因为所有localhost的请求都被转发debug插件监听并转发到phpstorm上去了,在phpstorm有反应之前,是不会有响应的。所以建议不需要debug的时候把插件关掉吧。

  2. Pingback: PHP断点调试 debug教程 | SkyQuiet

  3. 沙漠风暴

    还是不太明白调试服务器代码时候应该怎么设置remote_host ,另外xdebug是在本地配置好还是在服务器上配置好?如果服务器是nginx是不是也一样?谢谢解答~

  4. 沐沐

    “打开浏览器,如果是用chrome或者Firefox可以找到对应的XDebug工具,工具的设置里的IDE KEY填上PHPSTORM,把localhost加入到白名单,以后调试的时候把工具启用就好了。” 工具的设置里的IDE KEY,我怎么找不到呢?

  5. Pingback: phpxdebug – 噼里啪啦砰(~ ̄▽ ̄~)

  6. Pingback: XDEBUG远程调试教程 | 刘德洪的笔记

  7. Pingback: » xampp中Xdebug的安装使用小胡自学网

发表评论

电子邮件地址不会被公开。 必填项已用*标注