PHPStorm+Xdebug调试PHP Web程序

版权声明:欢迎转载,请附上原文链接 https://blog.csdn.net/hfut_wowo/article/details/88569649

本文主要讲解利用PHPStorm和Xdebug调试PHP Web程序。

环境

  • PHP Version 7.1.22
  • Xdebug v2.6.0
  • PHP2016.2;
  • 操作系统:MacOS 10.12.3

Xdebug配置

  1. 在Web应用运行环境中,打开php.ini文件(例如你的Web程序跑在本地,就修改本地的php.ini,如果你的程序跑在内网机172.16.17.8,那你就ssh到这台机器上,修改这台机器的php.ini)。在文件尾部添加Xdebug配置:
[Xdebug]
xdebug.remote_enable=1
xdebug.remote_host=127.0.0.1
xdebug.remote_connect_back=1
xdebug.remote_port=9001
xdebug.remote_autostart=1
xdebug.idekey=phpstorm

用到的最多的配置就是以上几个,对于这几个的配置解释如下:

  • remote_enable
    决定xdebug是否开启远程调试模式,在使用Remote Debugging的时候必须打开;
  • remote_host vs remote_connect_back
    由于这两个配置项有紧密联系,所以放在一起讲。
    • 首先,如果你指针对单个调试用户,比如就你自己调试,你可以将remote_host设成你的Web程序运行的ip,remote_connect_back的值不设置或者设置为0(你不设置默认也是0)。这样Xdebug每次调试的时候会固定连接remote_host指定的ip;
    • 但是如果你支持的是多人调试,明显设置一个remote_host是没办法的。这个时候就可以用remote_connect_back=1来设置。当remote_connect_back设置为1的时候,xdebug会根据请求来的ip自动回连,进行调试,从而支持多人调试。同时,这个值设为1的话会使remote_host的设置无效;
    • 一般情况下,推荐使用remote_connect_back=1的配置
  • remote_port
    显然这是设置调试端口的,这里的端口需要与PHPStorm中配置的调试端口一致,需要注意的时候不可用和别的端口起冲突,不然会无法进入调试,我们这里设置成9001(因为fpm默认的端口是9000,为了防止冲突,这里设置成9001);
  • remote_autostart
    默认状态下,触发调试需要在url中增加get参数:XDEBUG_SESSION_START={xdebug.idekey},如果想自动启动调试,可以将这个值设为1,所以推荐将这个值设为1;
  • idekey
    可以理解为调试的令牌,需要运行Web程序的PHP中配置的令牌和PHPStorm中配置的令牌一致,才可触发调试;
  1. 配置完成之后,千万不要忘记重启fpm,然后打印phpinfo(在Web程序入口处输入phpinfo();exit;然后访问Web程序,就可以查看php的配置相关信息 )查看配置是否生效;

    • 查看Xdebug是否安装,以及版本信息在这里插入图片描述
    • 查看xdebug参数信息(Ctrl+f 搜索xdebug
      在这里插入图片描述
  2. 打开PHPStorm,点击菜单PhpStorm->Preferences,进入配置对话框。点击Languages & Frameworks -> PHP -> Xdebug,进入Debug配置页面,将Xdebug下面的Debug Port设置成9001,然后点击OK:
    在这里插入图片描述
    这里设置好了,可以测试一下:

    • 点击工具栏上的远程调试按钮:
      在这里插入图片描述
    • 使用lsof -i tcp:9001命令查看PHPStorm的调试Client是否启动:
      在这里插入图片描述
  3. 配置PHP Server。PhpStorm->Preferences -> Languages & Frameworks -> PHP -> Servers,点击+号,在右侧输入Web程序的域名和端口。根据是否是远程调试,配置Use,配置好了点击OK。Use Path Mappings要特别注意

    • 如果你是调试本机的Web程序,这里不需要设置;
    • 如果你是调试远程的Web程序,需要勾选,然后在下面内容的左侧选中项目文件夹,再在右侧中输入远程Web程序的根目录,按下Enter;
      在这里插入图片描述
  4. 配置Remote Debug。从菜单栏Run->Edit Configuations进入运行环境的配置窗口,点击窗口左上角的+号,选择PHP Remote Debug,在右侧的Servers里面选择我们刚刚配置好的local-r2s,然后输入ide key(PHPSTORM),点击OK。
    在这里插入图片描述

至此,调试的配置就完成了。
现在打开工具栏上的远程调试按钮(如果你之前测试时打开了,就点击它关闭,再点击一次打开就可以了)。然后在代码中设置断点。没有意外的话,就可以进入断点了。
在这里插入图片描述

配置的过程相对比较复杂,请一定要耐心的配置,否则对于新手排查问题还是比较困难的。下一期我将结合自己踩过的坑,讲一讲无法触发调试,主要有哪些可能的原因。

欢迎转载,但请带上原文链接,谢谢。

猜你喜欢

转载自blog.csdn.net/hfut_wowo/article/details/88569649