logo头像

Hello World

PHP-Xdebug

PHP使用Xdebug调试PHP项目

前言

网上类似的教程比较多,这里仅仅作为几个记录,用于备忘。

在项目过程中,使用某开源插件,结果在更新后,插件会报一些错误,传统的var_dump方式比较繁琐,这个时候正好使用Xdebug来进行调试。

Xdebug下载:https://xdebug.org/download.php

环境:

PHP版本 PHP 7.1.14 x64 VC14 nts
Xdebug Xdebug-2.6.0-7.1-vc14-nts-x86_64
IDE PHPStorm 2017.2.1

环境安装

  1. Xdebug安装

    通过phpinfo();检查是否安装扩展。

    如果没有安装,到https://xdebug.org/download.php Xdebug下载页面下载dll

    我下载的PHP7.1版本php_xdebug-2.6.0-7.1-vc14-nts-x86_64.dll

    如果不知道如何选择,可以到官方提供的帮助页面
    https://xdebug.org/wizard.php

    在此使用php -i 输出phpinfo信息,然后将信息粘贴到该页面,提交后会告诉你下载链接。
    QQ截图20180302133423.jpg

    得到结果如图
    QQ截图20180302133535.jpg

    修改PHP.ini 加入以下代码,开启Xdebug扩展。

    1
    zend_extension = php_xdebug-2.6.0-7.1-vc14-nts-x86_64.dll

    重启PHP后,使用php -v 查看是否安装成功。
    QQ截图20180302133724.jpg

  2. PHPStorm 配置

    配置PHPstorm之前,要配置xdebug允许phpstorm进行调试。
    修改php.ini加入以下代码

    PHPstorm默认使用的9000端口,但本地有程序占用,于是进行了修改。这里一定要和PHPstorm的端口一致

    1
    2
    3
    4
    5
    6
    [xdebug]
    xdebug.remote_enable = On
    xdebug.remote_handler = dbgp
    xdebug.remote_host= localhost
    xdebug.remote_port = 8091
    xdebug.idekey = PHPSTORM

    phpinfo.jpg

    重启PHP

    接下来修改PHPstorm配置

    修改 文件->设置->语言和框架->PHP->Debug
    phpstormsetting.jpg

    修改 文件->设置->语言和框架->PHP->Debug->DBGp Proxy

    Host 如果自定义了域名一定要写你自定义的域名
    QQ截图20180302134004.jpg

    添加一个Server

    文件->设置->语言和框架->PHP->Servers

    Host 如果自定义了域名一定要写你自定义的域名
    QQ截图20180302134426.jpg

    修改 运行调试配置
    添加一个PHP Web Application.
    QQ截图20180302134527.jpg

  3. 下断调试

    在行号后点击,出现红点,说明下了断点。
    QQ截图20180302134917.jpg

    开启监听,如上图所示,有一个电话的图标,将其置为绿色启用监听。

    点击臭虫按钮,弹出网站页面,就可以看到监听信息了,可以看到许多变量信息。
    QQ截图20180302135208.jpg

我这里是遇到yii-audit插件总是无法插入request数据到数据库,进行一次调试。
https://github.com/bedezign/yii2-audit/issues/238